You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
|
Feb
(6) |
Mar
(41) |
Apr
(23) |
May
(11) |
Jun
(2) |
Jul
|
Aug
|
Sep
(9) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2008 |
Jan
(6) |
Feb
(1) |
Mar
(23) |
Apr
(18) |
May
(21) |
Jun
(13) |
Jul
(34) |
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
|
Dec
(4) |
2009 |
Jan
|
Feb
(5) |
Mar
(5) |
Apr
(10) |
May
(1) |
Jun
(11) |
Jul
(1) |
Aug
|
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(13) |
2010 |
Jan
(10) |
Feb
(4) |
Mar
(28) |
Apr
(3) |
May
(38) |
Jun
(22) |
Jul
(92) |
Aug
(154) |
Sep
(218) |
Oct
(45) |
Nov
(20) |
Dec
(1) |
2011 |
Jan
(33) |
Feb
(15) |
Mar
(32) |
Apr
(33) |
May
(48) |
Jun
(35) |
Jul
(7) |
Aug
|
Sep
(11) |
Oct
(5) |
Nov
|
Dec
(7) |
2012 |
Jan
(56) |
Feb
(11) |
Mar
(6) |
Apr
|
May
(128) |
Jun
(59) |
Jul
(21) |
Aug
(16) |
Sep
(24) |
Oct
(39) |
Nov
(12) |
Dec
(12) |
2013 |
Jan
(14) |
Feb
(61) |
Mar
(97) |
Apr
(46) |
May
(13) |
Jun
(23) |
Jul
(12) |
Aug
(25) |
Sep
(9) |
Oct
(81) |
Nov
(73) |
Dec
(45) |
2014 |
Jan
(36) |
Feb
(57) |
Mar
(20) |
Apr
(41) |
May
(43) |
Jun
(11) |
Jul
(14) |
Aug
(32) |
Sep
(9) |
Oct
(27) |
Nov
(21) |
Dec
(6) |
2015 |
Jan
(14) |
Feb
(23) |
Mar
(1) |
Apr
(19) |
May
(40) |
Jun
(11) |
Jul
(1) |
Aug
(2) |
Sep
(14) |
Oct
(10) |
Nov
(9) |
Dec
(13) |
2016 |
Jan
(4) |
Feb
(3) |
Mar
(7) |
Apr
|
May
(4) |
Jun
(13) |
Jul
(8) |
Aug
(3) |
Sep
(4) |
Oct
(1) |
Nov
|
Dec
|
2017 |
Jan
(6) |
Feb
(1) |
Mar
(1) |
Apr
(7) |
May
(10) |
Jun
(5) |
Jul
(7) |
Aug
(9) |
Sep
|
Oct
(1) |
Nov
(5) |
Dec
|
2018 |
Jan
|
Feb
|
Mar
(5) |
Apr
|
May
|
Jun
(3) |
Jul
(6) |
Aug
|
Sep
(2) |
Oct
(54) |
Nov
(47) |
Dec
(53) |
2019 |
Jan
(23) |
Feb
(24) |
Mar
(19) |
Apr
(15) |
May
(5) |
Jun
(34) |
Jul
(9) |
Aug
(9) |
Sep
(3) |
Oct
(2) |
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
(7) |
Apr
(7) |
May
(5) |
Jun
(15) |
Jul
(22) |
Aug
(28) |
Sep
(13) |
Oct
(9) |
Nov
(17) |
Dec
(13) |
2021 |
Jan
(5) |
Feb
(1) |
Mar
(1) |
Apr
(9) |
May
(21) |
Jun
(9) |
Jul
|
Aug
(6) |
Sep
(16) |
Oct
|
Nov
(1) |
Dec
(6) |
2022 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(6) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(11) |
Sep
(21) |
Oct
(5) |
Nov
(1) |
Dec
(1) |
2024 |
Jan
(1) |
Feb
(4) |
Mar
|
Apr
(7) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
From: Erich W. <ew....@na...> - 2020-08-29 15:45:07
|
Dear AmForthers, I asked: > - 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. see https://sourceforge.net/p/amforth/mailman/message/37048278/ How to create an official release? I spent some time to do some code archeology. I still do not know, how to properly make a release. This is, what I currently see/expect: 1. check all version numbers in trunk - doc/Makefile being one place. This seems to be used in all generated documentation, which is nice. - common/words/env-forthversion.asm is another place with different syntax! Judging by commit r2271, these are all places indeed. Yay! 2. update doc/source/index.rst and optionally history.rst in trunk and commit 3. "svn copy" trunk to releases/$VERSION; commit message collects the accumulated one line change descriptions This is the most visible change in the source tree e.g. see commit r2244 (rel 6.5) 4. create all .hex files for target boards in appl/ arduino,atmega2561,eval-pollin,hifive1,launchpad-arm,launchpad430, template I had forgotten that these exsisted. They are in the release archive only, not in the source tree. Now I understand, why people sometimes ask about them. This step is detailed in a few .xml files. Matthias used ant to build them. I have not built these before, but this looks doable, provided I get all relevant toolchains up and running. 5. create the documentation - htdocs, the web page - books, did you know that all the content of the webpage shows up in amforth.pdf (made with pdflatex) and AmForth.epub (made with sphinx-build)? Amazing! These books are part of the download .zip archive. This step is a "cd doc; make all" --- provided sphinx pdflatex and all the good stuff is installed. 6. create a new temporary tree to collect everything, that goes into the release archive: - sources - some of the scripts, tools, meta-files - the generated documentation from releases/$VERSION, without the document sources, but including the "books" I have not found anything that looks like doing this. 7. create the .zip and .tar.gz archives (the easy part), and upload them to their correct location in the sourceforge.net file tree (the not so obvious part). I found out that these release archives were built by Matthias. The files for 6.8 are about 7 MB in size. Whereas if you download "the latest sources", sourceforge will generate a snapshot of "trunk". This is a plain copy, without all the niceties included in the archives mentioned here. This archive is currently 35 MB in size. 8. sync the generated documentation with the online website I have done this a few times now, but I'm still asking myself, if I see all relevant pieces or not. 9. Increment the version numbers in trunk and commit So nine easy steps to code nirvana? Hmmm. If anyone has some insight or detail I'm missing, I would be happy to hear about it. I propose to rework this into a .rst document and add it to the source tree, once missing bits have emerged (points 4, 6, 7). Cheers, Erich -- May the Forth be with you ... |
From: Erich W. <ew....@na...> - 2020-08-29 15:19:16
|
Hello Tristan, Tristan Williams writes: > A one line patch for amforth-shell.py to correct a python2/python3 > syntax error. It occurs when using the --no-error-on-output > option. Below is a unified diff against r2450/trunk/tools/amforth-shell.py > > --- amforth-shell.py > +++ new-shell.py > @@ -857,7 +857,7 @@ > self.progress_callback("Sent", lineno, full_line) > if response[-3:] == " ok": > if len(response) > 3: > - for l in StringIO.StringIO(response[:-3]): > + for l in StringIO(response[:-3]): > self.progress_callback("Output", lineno, l.rstrip()) > r = self._config.current_behavior.expected_output_regexp > if r: > > I committed your patch as revision r2451 (without further testing). Thank you for the patch! Cheers, Erich -- May the Forth be with you ... |
From: Tristan W. <ho...@tj...> - 2020-08-28 08:13:02
|
A one line patch for amforth-shell.py to correct a python2/python3 syntax error. It occurs when using the --no-error-on-output option. Below is a unified diff against r2450/trunk/tools/amforth-shell.py --- amforth-shell.py +++ new-shell.py @@ -857,7 +857,7 @@ self.progress_callback("Sent", lineno, full_line) if response[-3:] == " ok": if len(response) > 3: - for l in StringIO.StringIO(response[:-3]): + for l in StringIO(response[:-3]): self.progress_callback("Output", lineno, l.rstrip()) r = self._config.current_behavior.expected_output_regexp if r: Best wishes, Tristan |
From: Erich W. <ew....@na...> - 2020-08-28 06:27:32
|
Hello Mark, Mark Roth writes: > Because the zip is the Release package and the SVN is the Dev package I > would guess. The end user that isn't going to do anything more than grab > the zip, add the AVR stuff, quick scan the readme, go to the > APPL directory, make a copy of the template, hit make install (hopefully > after reading what needs to be changed to get the correct hex files) and > never do anything else but upload extra FRTs as needed. That may well be. I said to Martin: look in doc/Makefile. Answer: there is no doc/Makefile :-( > To build the docs you need a lot (a real lot) of extra packages. The real > question is, "How are the zips created?" Yes, agreed, and probably part of the bigger question: How (in detail) did Matthias roll up an official release? Well, I'll find out. Cheers, Erich > All the best, > Mark > > On Thu, Aug 27, 2020 at 10:50 PM Erich Wälde <ew....@na...> wrote: > >> >> Hello all, >> >> Martin B. found out that the content of the download.zip files >> is different from the content of the svn checkout. For example >> ./doc/Makefile is not present. However, the zip file has more >> files alltogether: >> >> >> $ find releases/6.8 -type f | wc -l >> 2389 >> >> $ find ./amforth-6.8 -type f | wc -l # from download-6.8.zip >> 2537 >> >> So the content is different somehow. >> >> Anyone have any insight/ideas? >> >> This seems to be an item for the upcoming AmForth weekend, >> /me thinks ... >> >> >> Cheers, >> Erich >> >> -- >> May the Forth be with you ... >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel -- May the Forth be with you ... |
From: Mark R. <cab...@gm...> - 2020-08-28 02:24:48
|
Because the zip is the Release package and the SVN is the Dev package I would guess. The end user that isn't going to do anything more than grab the zip, add the AVR stuff, quick scan the readme, go to the APPL directory, make a copy of the template, hit make install (hopefully after reading what needs to be changed to get the correct hex files) and never do anything else but upload extra FRTs as needed. To build the docs you need a lot (a real lot) of extra packages. The real question is, "How are the zips created?" All the best, Mark On Thu, Aug 27, 2020 at 10:50 PM Erich Wälde <ew....@na...> wrote: > > Hello all, > > Martin B. found out that the content of the download.zip files > is different from the content of the svn checkout. For example > ./doc/Makefile is not present. However, the zip file has more > files alltogether: > > > $ find releases/6.8 -type f | wc -l > 2389 > > $ find ./amforth-6.8 -type f | wc -l # from download-6.8.zip > 2537 > > So the content is different somehow. > > Anyone have any insight/ideas? > > This seems to be an item for the upcoming AmForth weekend, > /me thinks ... > > > Cheers, > Erich > > -- > May the Forth be with you ... > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |
From: Erich W. <ew....@na...> - 2020-08-27 19:50:28
|
Hello all, Martin B. found out that the content of the download.zip files is different from the content of the svn checkout. For example ./doc/Makefile is not present. However, the zip file has more files alltogether: $ find releases/6.8 -type f | wc -l 2389 $ find ./amforth-6.8 -type f | wc -l # from download-6.8.zip 2537 So the content is different somehow. Anyone have any insight/ideas? This seems to be an item for the upcoming AmForth weekend, /me thinks ... Cheers, Erich -- May the Forth be with you ... |
From: Brian <bkn...@gm...> - 2020-08-16 12:27:16
|
I'm using a butterfly (atmega169) with the latest version, runs great. Brian-in-ohio On 8/16/20 4:49 AM, Malte Frank Gerdes wrote: > Okay, i see. I'll use a bigger controller then. > > > Malte > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Malte F. G. <mal...@gm...> - 2020-08-16 08:50:09
|
Okay, i see. I'll use a bigger controller then. Malte |
From: Tristan W. <ho...@tj...> - 2020-08-15 07:42:46
|
Hi, > Does that mean that it is practically impossible to use amforth on an > atmega8? I would say yes. The ATmega8 has 8K of flash memory. My AmForth 6.8 ATmega328p hex needs ~10K of flash memory. It might be possible to remove words from the current distribution/build so that it would fit into 8K, but then there would be very little flash memory remaining to do anything with. >From a search of the mailing list, 2.7 was the latest version I saw reported as running on an ATmega8. Kind regards, Tristan On 14Aug20 18:33, Malte Frank Gerdes wrote: > Reading the mailing list archive it seems that those errors happen and > most of the time it's difficult to know where they come from. I found > that it is possible to ignore those Overlaps with -O i. Now i get > different errors which at least make sense to me. > > > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(101): error: call k: Unsupported instruction on ATmega8 > ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\amforth.asm(19): error: RWW Segment Overflow, please edit your dict_appl.inc > ../../avr8\macros.asm(101): error: call k: Unsupported instruction on ATmega8 > ../../avr8\words/d-lesszero.asm(14): error: jmp k: Unsupported instruction on ATmega8 > ../../avr8\words/d-lesszero.asm(15): error: jmp k: Unsupported instruction on ATmega8 > > > Looking at the svn history this macro was introduced in 2011, the 4.2 > release at least builds for the atmega8 when the trailing zeroes are > removed from the usart definitions in template.asm. Even then the > resulting resource usage is 118% of available flash memory. > > The dict_appl.inc file used is empty, so i'm not sure what to modify > there, because as i understand it this file is meant to include extra > words. > > Does that mean that it is practically impossible to use amforth on an > atmega8? If not, are there some example projects using it (i haven't > found any)? > > > Malte > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |
From: Malte F. G. <mal...@gm...> - 2020-08-14 16:34:08
|
Reading the mailing list archive it seems that those errors happen and most of the time it's difficult to know where they come from. I found that it is possible to ignore those Overlaps with -O i. Now i get different errors which at least make sense to me. ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(101): error: call k: Unsupported instruction on ATmega8 ../../avr8\macros.asm(94): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\amforth.asm(19): error: RWW Segment Overflow, please edit your dict_appl.inc ../../avr8\macros.asm(101): error: call k: Unsupported instruction on ATmega8 ../../avr8\words/d-lesszero.asm(14): error: jmp k: Unsupported instruction on ATmega8 ../../avr8\words/d-lesszero.asm(15): error: jmp k: Unsupported instruction on ATmega8 Looking at the svn history this macro was introduced in 2011, the 4.2 release at least builds for the atmega8 when the trailing zeroes are removed from the usart definitions in template.asm. Even then the resulting resource usage is 118% of available flash memory. The dict_appl.inc file used is empty, so i'm not sure what to modify there, because as i understand it this file is meant to include extra words. Does that mean that it is practically impossible to use amforth on an atmega8? If not, are there some example projects using it (i haven't found any)? Malte |
From: Malte F. G. <mal...@gm...> - 2020-08-14 12:55:49
|
[Sorry for double posting the question i didn't know that it gets sent automtically after subscribing to the list :(] Thanks for the info, i completely ignored the warnings and didn't search for it, because of the errors. So with your suggestion the warnings are gone, but the Overlap errors are still the same. Malte |
From: Martin N. <amf...@mg...> - 2020-08-14 12:33:29
|
In template.asm, a better bet might be: > ; define which usart to use. > .include "drivers/usart.asm" See also: http://amforth.sourceforge.net/TG/recipes/Usart.html On Fri, 14 Aug 2020 13:17:13 +0200 Malte Frank Gerdes <mal...@gm...> wrote: > Hi, > > this is the first time i'm using amforth. I followed > http://amforth.sourceforge.net/UG/linux.html to get amforth and tried > to build the template.hex file for an atmega8. I also tried a > snapshot of r2450, which has the same error. The template.lst file > contains this: > > AVRASM ver. 2.1.52 template.asm Fri Aug 14 13:00:33 2020 > > template.asm(14): Including file '../../avr8\preamble.inc' > ../../avr8\preamble.inc(2): Including file '../../avr8\macros.asm' > ../../avr8\macros.asm(6): Including file '../../avr8\user.inc' > ../../avr8\preamble.inc(6): Including file > '../../avr8/devices/atmega8\device.asm' > ../../avr8/devices/atmega8\device.asm(5): Including file > '../../avr8/Atmel/Appnotes2\m8def.inc' template.asm(53): Including > file '../../avr8\drivers/usart_0.asm' -- Regards, Martin Nicholas. E-mail: mg...@mg.... |
From: Malte F. G. <mal...@gm...> - 2020-08-14 11:17:25
|
Hi, this is the first time i'm using amforth. I followed http://amforth.sourceforge.net/UG/linux.html to get amforth and tried to build the template.hex file for an atmega8. I also tried a snapshot of r2450, which has the same error. The template.lst file contains this: AVRASM ver. 2.1.52 template.asm Fri Aug 14 13:00:33 2020 template.asm(14): Including file '../../avr8\preamble.inc' ../../avr8\preamble.inc(2): Including file '../../avr8\macros.asm' ../../avr8\macros.asm(6): Including file '../../avr8\user.inc' ../../avr8\preamble.inc(6): Including file '../../avr8/devices/atmega8\device.asm' ../../avr8/devices/atmega8\device.asm(5): Including file '../../avr8/Atmel/Appnotes2\m8def.inc' template.asm(53): Including file '../../avr8\drivers/usart_0.asm' ../../avr8\drivers/usart_0.asm(1): warning: Use of undefined or forward referenced symbol 'UBRR0L' in .equ/.set ../../avr8\drivers/usart_0.asm(2): warning: Use of undefined or forward referenced symbol 'UBRR0H' in .equ/.set ../../avr8\drivers/usart_0.asm(3): warning: Use of undefined or forward referenced symbol 'UCSR0C' in .equ/.set ../../avr8\drivers/usart_0.asm(4): warning: Use of undefined or forward referenced symbol 'UCSR0B' in .equ/.set ../../avr8\drivers/usart_0.asm(5): warning: Use of undefined or forward referenced symbol 'UCSR0A' in .equ/.set ../../avr8\drivers/usart_0.asm(12): warning: Use of undefined or forward referenced symbol 'RXC0' in .equ/.set ../../avr8\drivers/usart_0.asm(13): warning: Use of undefined or forward referenced symbol 'UDRE0' in .equ/.set ../../avr8\drivers/usart_0.asm(14): warning: Use of undefined or forward referenced symbol 'TXEN0' in .equ/.set ../../avr8\drivers/usart_0.asm(15): warning: Use of undefined or forward referenced symbol 'RXEN0' in .equ/.set ../../avr8\drivers/usart_0.asm(16): warning: Use of undefined or forward referenced symbol 'RXCIE0' in .equ/.set ../../avr8\drivers/usart_0.asm(17): warning: Use of undefined or forward referenced symbol 'UDRIE0' in .equ/.set ../../avr8\drivers/usart_0.asm(32): Including file '../../avr8\drivers/usart_common.asm' ../../avr8\drivers/usart_common.asm(11): Including file '../../avr8\drivers/usart-rx-buffer.asm' ../../avr8\drivers/usart_common.asm(24): Including file '../../avr8\words/usart-tx-poll.asm' ../../avr8\drivers/usart_common.asm(29): Including file '../../avr8\words/ubrr.asm' ../../avr8\drivers/usart_common.asm(30): Including file '../../avr8\words/usart.asm' template.asm(124): Including file '../../avr8\amforth.asm' ../../avr8\amforth.asm(12): Including file '../../avr8\drivers/generic-isr.asm' ../../avr8\amforth.asm(14): Including file '../../avr8\dict/rww.inc' ../../avr8\dict/rww.inc(1): Including file '../../avr8\words/mplus.asm' ../../avr8\dict/rww.inc(2): Including file '../../common\words/ud-star.asm' ../../avr8\dict/rww.inc(3): Including file '../../common\words/umax.asm' ../../avr8\dict/rww.inc(4): Including file '../../common\words/umin.asm' ../../avr8\dict/rww.inc(5): Including file '../../avr8\words/immediate-q.asm' ../../avr8\dict/rww.inc(6): Including file '../../avr8\words/name2flags.asm' ../../avr8\dict/rww.inc(7): Including file '../../avr8\words/1ms.asm' ../../avr8\dict/rww.inc(14): Including file '../../avr8\dict/appl_2k.inc' ../../avr8\dict/appl_2k.inc(1): Including file '../../avr8\words/d-2star.asm' ../../avr8\dict/appl_2k.inc(2): Including file '../../avr8\words/d-2slash.asm' ../../avr8\dict/appl_2k.inc(3): Including file '../../avr8\words/d-plus.asm' ../../avr8\dict/appl_2k.inc(4): Including file '../../avr8\words/d-minus.asm' ../../avr8\dict/appl_2k.inc(5): Including file '../../avr8\words/d-invert.asm' ../../avr8\dict/appl_2k.inc(6): Including file '../../common\words/u-dot.asm' ../../avr8\dict/appl_2k.inc(7): Including file '../../common\words/u-dot-r.asm' ../../avr8\dict/appl_2k.inc(9): Including file '../../common\words/show-wordlist.asm' ../../avr8\dict/appl_2k.inc(10): Including file '../../common\words/words.asm' ../../avr8\dict/appl_2k.inc(11): Including file '../../avr8\dict/interrupt.inc' ../../avr8\dict/interrupt.inc(5): Including file '../../avr8\words/irqcnt.asm' ../../avr8\dict/interrupt.inc(6): Including file '../../avr8\words/int-num.asm' ../../avr8\dict/interrupt.inc(9): Including file '../../avr8\words/int-on.asm' ../../avr8\dict/interrupt.inc(10): Including file '../../avr8\words/int-off.asm' ../../avr8\dict/interrupt.inc(11): Including file '../../avr8\words/int-store.asm' ../../avr8\dict/interrupt.inc(12): Including file '../../avr8\words/int-fetch.asm' ../../avr8\dict/interrupt.inc(13): Including file '../../avr8\words/int-trap.asm' ../../avr8\dict/interrupt.inc(15): Including file '../../avr8\words/isr-exec.asm' ../../avr8\dict/interrupt.inc(16): Including file '../../avr8\words/isr-end.asm' ../../avr8\dict/appl_2k.inc(13): Including file '../../common\words/pick.asm' ../../avr8\dict/appl_2k.inc(14): Including file '../../common\words/dot-quote.asm' ../../avr8\dict/appl_2k.inc(15): Including file '../../common\words/squote.asm' ../../avr8\dict/appl_2k.inc(17): Including file '../../avr8\words/fill.asm' ../../avr8\dict/appl_2k.inc(18): Including file '../../avr8\dict/compiler1.inc' ../../avr8\dict/compiler1.inc(2): Including file '../../avr8\words/newest.asm' ../../avr8\dict/compiler1.inc(3): Including file '../../avr8\words/latest.asm' ../../avr8\dict/compiler1.inc(4): Including file '../../common\words/do-create.asm' ../../avr8\dict/compiler1.inc(5): Including file '../../common\words/backslash.asm' ../../avr8\dict/compiler1.inc(6): Including file '../../common\words/l-paren.asm' ../../avr8\dict/compiler1.inc(8): Including file '../../common\words/compile.asm' ../../avr8\dict/compiler1.inc(9): Including file '../../avr8\words/comma.asm' ../../avr8\dict/compiler1.inc(10): Including file '../../common\words/brackettick.asm' ../../avr8\dict/compiler1.inc(13): Including file '../../common\words/literal.asm' ../../avr8\dict/compiler1.inc(14): Including file '../../common\words/sliteral.asm' ../../avr8\dict/compiler1.inc(15): Including file '../../avr8\words/g-mark.asm' ../../avr8\dict/compiler1.inc(16): Including file '../../avr8\words/g-resolve.asm' ../../avr8\dict/compiler1.inc(17): Including file '../../avr8\words/l_mark.asm' ../../avr8\dict/compiler1.inc(18): Including file '../../avr8\words/l_resolve.asm' ../../avr8\dict/compiler1.inc(20): Including file '../../common\words/ahead.asm' ../../avr8\dict/compiler1.inc(21): Including file '../../common\words/if.asm' ../../avr8\dict/compiler1.inc(22): Including file '../../common\words/else.asm' ../../avr8\dict/compiler1.inc(23): Including file '../../common\words/then.asm' ../../avr8\dict/compiler1.inc(24): Including file '../../common\words/begin.asm' ../../avr8\dict/compiler1.inc(25): Including file '../../common\words/while.asm' ../../avr8\dict/compiler1.inc(26): Including file '../../common\words/repeat.asm' ../../avr8\dict/compiler1.inc(27): Including file '../../common\words/until.asm' ../../avr8\dict/compiler1.inc(28): Including file '../../common\words/again.asm' ../../avr8\dict/compiler1.inc(29): Including file '../../common\words/do.asm' ../../avr8\dict/compiler1.inc(30): Including file '../../common\words/loop.asm' ../../avr8\dict/compiler1.inc(31): Including file '../../common\words/plusloop.asm' ../../avr8\dict/compiler1.inc(32): Including file '../../common\words/leave.asm' ../../avr8\dict/compiler1.inc(33): Including file '../../common\words/qdo.asm' ../../avr8\dict/compiler1.inc(34): Including file '../../common\words/endloop.asm' ../../avr8\dict/compiler1.inc(36): Including file '../../common\words/l-from.asm' ../../avr8\dict/compiler1.inc(37): Including file '../../common\words/to-l.asm' ../../avr8\dict/compiler1.inc(38): Including file '../../avr8\words/lp0.asm' ../../avr8\dict/compiler1.inc(39): Including file '../../avr8\words/lp.asm' ../../avr8\dict/compiler1.inc(41): Including file '../../common\words/create.asm' ../../avr8\dict/compiler1.inc(42): Including file '../../avr8\words/header.asm' ../../avr8\dict/compiler1.inc(43): Including file '../../avr8\words/wlscope.asm' ../../avr8\dict/compiler1.inc(44): Including file '../../common\words/reveal.asm' ../../avr8\dict/compiler1.inc(45): Including file '../../avr8\words/does.asm' ../../avr8\dict/compiler1.inc(46): Including file '../../common\words/colon.asm' ../../avr8\dict/compiler1.inc(47): Including file '../../avr8\words/colon-noname.asm' ../../avr8\dict/compiler1.inc(48): Including file '../../common\words/semicolon.asm' ../../avr8\dict/compiler1.inc(49): Including file '../../common\words/right-bracket.asm' ../../avr8\dict/compiler1.inc(50): Including file '../../common\words/left-bracket.asm' ../../avr8\dict/compiler1.inc(51): Including file '../../common\words/variable.asm' ../../avr8\dict/compiler1.inc(52): Including file '../../common\words/constant.asm' ../../avr8\dict/compiler1.inc(53): Including file '../../avr8\words/user.asm' ../../avr8\dict/compiler1.inc(55): Including file '../../common\words/recurse.asm' ../../avr8\dict/compiler1.inc(56): Including file '../../avr8\words/immediate.asm' ../../avr8\dict/compiler1.inc(58): Including file '../../common\words/bracketchar.asm' ../../avr8\dict/compiler1.inc(59): Including file '../../common\words/abort-string.asm' ../../avr8\dict/compiler1.inc(60): Including file '../../common\words/abort.asm' ../../avr8\dict/compiler1.inc(61): Including file '../../common\words/q-abort.asm' ../../avr8\dict/compiler1.inc(63): Including file '../../common\words/get-stack.asm' ../../avr8\dict/compiler1.inc(64): Including file '../../common\words/set-stack.asm' ../../avr8\dict/compiler1.inc(65): Including file '../../common\words/map-stack.asm' ../../avr8\dict/compiler1.inc(66): Including file '../../avr8\words/get-current.asm' ../../avr8\dict/compiler1.inc(67): Including file '../../common\words/cfg-order.asm' ../../avr8\dict/compiler1.inc(68): Including file '../../common\words/cfg-recognizer.asm' ../../avr8\dict/compiler1.inc(69): Including file '../../avr8\words/compare.asm' ../../avr8\dict/compiler1.inc(70): Including file '../../avr8\words/nfa2lfa.asm' ../../avr8\dict/appl_2k.inc(20): Including file '../../avr8\words/environment.asm' ../../avr8\dict/appl_2k.inc(21): Including file '../../avr8\words/env-wordlists.asm' ../../avr8\dict/appl_2k.inc(22): Including file '../../avr8\words/env-slashpad.asm' ../../avr8\dict/appl_2k.inc(23): Including file '../../common\words/env-slashhold.asm' ../../avr8\dict/appl_2k.inc(24): Including file '../../common\words/env-forthname.asm' ../../avr8\dict/appl_2k.inc(25): Including file '../../common\words/env-forthversion.asm' ../../avr8\dict/appl_2k.inc(26): Including file '../../common\words/env-cpu.asm' ../../avr8\dict/appl_2k.inc(27): Including file '../../avr8\words/env-mcuinfo.asm' ../../avr8\dict/appl_2k.inc(28): Including file '../../common\words/env-usersize.asm' ../../avr8\dict/appl_2k.inc(30): Including file '../../common\words/f_cpu.asm' ../../avr8\dict/appl_2k.inc(31): Including file '../../avr8\words/state.asm' ../../avr8\dict/appl_2k.inc(32): Including file '../../common\words/base.asm' ../../avr8\dict/appl_2k.inc(34): Including file '../../avr8\words/cells.asm' ../../avr8\dict/appl_2k.inc(35): Including file '../../avr8\words/cellplus.asm' ../../avr8\dict/appl_2k.inc(37): Including file '../../common\words/2dup.asm' ../../avr8\dict/appl_2k.inc(38): Including file '../../common\words/2drop.asm' ../../avr8\dict/appl_2k.inc(40): Including file '../../common\words/tuck.asm' ../../avr8\dict/appl_2k.inc(42): Including file '../../common\words/to-in.asm' ../../avr8\dict/appl_2k.inc(43): Including file '../../common\words/pad.asm' ../../avr8\dict/appl_2k.inc(44): Including file '../../common\words/emit.asm' ../../avr8\dict/appl_2k.inc(45): Including file '../../common\words/emitq.asm' ../../avr8\dict/appl_2k.inc(46): Including file '../../common\words/key.asm' ../../avr8\dict/appl_2k.inc(47): Including file '../../common\words/keyq.asm' ../../avr8\dict/appl_2k.inc(49): Including file '../../avr8\words/dp.asm' ../../avr8\dict/appl_2k.inc(50): Including file '../../avr8\words/ehere.asm' ../../avr8\dict/appl_2k.inc(51): Including file '../../avr8\words/here.asm' ../../avr8\dict/appl_2k.inc(52): Including file '../../avr8\words/allot.asm' ../../avr8\dict/appl_2k.inc(54): Including file '../../common\words/bin.asm' ../../avr8\dict/appl_2k.inc(55): Including file '../../common\words/decimal.asm' ../../avr8\dict/appl_2k.inc(56): Including file '../../common\words/hex.asm' ../../avr8\dict/appl_2k.inc(57): Including file '../../common\words/bl.asm' ../../avr8\dict/appl_2k.inc(59): Including file '../../avr8\words/turnkey.asm' ../../avr8\dict/appl_2k.inc(61): Including file '../../avr8\words/slashmod.asm' ../../avr8\dict/appl_2k.inc(62): Including file '../../avr8\words/uslashmod.asm' ../../avr8\dict/appl_2k.inc(63): Including file '../../avr8\words/negate.asm' ../../avr8\dict/appl_2k.inc(64): Including file '../../common\words/slash.asm' ../../avr8\dict/appl_2k.inc(65): Including file '../../common\words/mod.asm' ../../avr8\dict/appl_2k.inc(66): Including file '../../common\words/abs.asm' ../../avr8\dict/appl_2k.inc(67): Including file '../../common\words/min.asm' ../../avr8\dict/appl_2k.inc(68): Including file '../../common\words/max.asm' ../../avr8\dict/appl_2k.inc(69): Including file '../../common\words/within.asm' ../../avr8\dict/appl_2k.inc(71): Including file '../../common\words/to-upper.asm' ../../avr8\dict/appl_2k.inc(72): Including file '../../common\words/to-lower.asm' ../../avr8\dict/appl_2k.inc(74): Including file '../../avr8\words/hld.asm' ../../avr8\dict/appl_2k.inc(75): Including file '../../common\words/hold.asm' ../../avr8\dict/appl_2k.inc(76): Including file '../../common\words/less-sharp.asm' ../../avr8\dict/appl_2k.inc(77): Including file '../../common\words/sharp.asm' ../../avr8\dict/appl_2k.inc(78): Including file '../../common\words/sharp-s.asm' ../../avr8\dict/appl_2k.inc(79): Including file '../../common\words/sharp-greater.asm' ../../avr8\dict/appl_2k.inc(80): Including file '../../common\words/sign.asm' ../../avr8\dict/appl_2k.inc(81): Including file '../../common\words/d-dot-r.asm' ../../avr8\dict/appl_2k.inc(82): Including file '../../common\words/dot-r.asm' ../../avr8\dict/appl_2k.inc(83): Including file '../../common\words/d-dot.asm' ../../avr8\dict/appl_2k.inc(84): Including file '../../common\words/dot.asm' ../../avr8\dict/appl_2k.inc(85): Including file '../../common\words/ud-dot.asm' ../../avr8\dict/appl_2k.inc(86): Including file '../../common\words/ud-dot-r.asm' ../../avr8\dict/appl_2k.inc(87): Including file '../../common\words/ud-slash-mod.asm' ../../avr8\dict/appl_2k.inc(88): Including file '../../common\words/digit-q.asm' ../../avr8\dict/appl_2k.inc(90): Including file '../../avr8\words/do-sliteral.asm' ../../avr8\dict/appl_2k.inc(91): Including file '../../avr8\words/scomma.asm' ../../avr8\dict/appl_2k.inc(92): Including file '../../avr8\words/itype.asm' ../../avr8\dict/appl_2k.inc(93): Including file '../../avr8\words/icount.asm' ../../avr8\dict/appl_2k.inc(94): Including file '../../common\words/cr.asm' ../../avr8\dict/appl_2k.inc(95): Including file '../../common\words/space.asm' ../../avr8\dict/appl_2k.inc(96): Including file '../../common\words/spaces.asm' ../../avr8\dict/appl_2k.inc(97): Including file '../../common\words/type.asm' ../../avr8\dict/appl_2k.inc(98): Including file '../../common\words/tick.asm' ../../avr8\dict/appl_2k.inc(100): Including file '../../common\words/handler.asm' ../../avr8\dict/appl_2k.inc(101): Including file '../../common\words/catch.asm' ../../avr8\dict/appl_2k.inc(102): Including file '../../common\words/throw.asm' ../../avr8\dict/appl_2k.inc(104): Including file '../../common\words/cskip.asm' ../../avr8\dict/appl_2k.inc(105): Including file '../../common\words/cscan.asm' ../../avr8\dict/appl_2k.inc(106): Including file '../../common\words/accept.asm' ../../avr8\dict/appl_2k.inc(107): Including file '../../common\words/refill.asm' ../../avr8\dict/appl_2k.inc(108): Including file '../../common\words/char.asm' ../../avr8\dict/appl_2k.inc(109): Including file '../../common\words/number.asm' ../../avr8\dict/appl_2k.inc(110): Including file '../../common\words/q-sign.asm' ../../avr8\dict/appl_2k.inc(111): Including file '../../common\words/set-base.asm' ../../avr8\dict/appl_2k.inc(112): Including file '../../common\words/to-number.asm' ../../avr8\dict/appl_2k.inc(113): Including file '../../common\words/parse.asm' ../../avr8\dict/appl_2k.inc(114): Including file '../../common\words/source.asm' ../../avr8\dict/appl_2k.inc(115): Including file '../../common\words/slash-string.asm' ../../avr8\dict/appl_2k.inc(116): Including file '../../common\words/parse-name.asm' ../../avr8\dict/appl_2k.inc(117): Including file '../../common\words/find-xt.asm' ../../avr8\dict/appl_2k.inc(119): Including file '../../common\words/quit.asm' ../../avr8\dict/appl_2k.inc(120): Including file '../../common\words/prompt-ok.asm' ../../avr8\dict/appl_2k.inc(121): Including file '../../common\words/prompt-ready.asm' ../../avr8\dict/appl_2k.inc(122): Including file '../../common\words/prompt-error.asm' ../../avr8\dict/appl_2k.inc(123): Including file '../../common\words/prompt-input.asm' ../../avr8\dict/appl_2k.inc(124): Including file '../../avr8\words/pause.asm' ../../avr8\dict/appl_2k.inc(125): Including file '../../avr8\words/cold.asm' ../../avr8\dict/appl_2k.inc(126): Including file '../../common\words/warm.asm' ../../avr8\dict/appl_2k.inc(128): Including file '../../avr8\words/sp0.asm' ../../avr8\dict/appl_2k.inc(129): Including file '../../avr8\words/rp0.asm' ../../avr8\dict/appl_2k.inc(130): Including file '../../common\words/depth.asm' ../../avr8\dict/appl_2k.inc(131): Including file '../../common\words/recognize.asm' ../../avr8\dict/appl_2k.inc(132): Including file '../../avr8\words/forth-recognizer.asm' ../../avr8\dict/appl_2k.inc(133): Including file '../../common\words/interpret.asm' ../../avr8\dict/appl_2k.inc(134): Including file '../../common\words/rec-intnum.asm' ../../avr8\dict/appl_2k.inc(135): Including file '../../common\words/rec-find.asm' ../../avr8\dict/appl_2k.inc(136): Including file '../../common\words/rec-null.asm' ../../avr8\dict/appl_2k.inc(138): Including file '../../common\words/q-stack.asm' ../../avr8\dict/appl_2k.inc(139): Including file '../../common\words/ver.asm' ../../avr8\dict/appl_2k.inc(141): Including file '../../common\words/noop.asm' ../../avr8\dict/appl_2k.inc(142): Including file '../../avr8\words/unused.asm' ../../avr8\dict/appl_2k.inc(144): Including file '../../common\words/to.asm' ../../avr8\dict/appl_2k.inc(145): Including file '../../avr8\words/i-cellplus.asm' ../../avr8\dict/appl_2k.inc(147): Including file '../../avr8\words/edefer-fetch.asm' ../../avr8\dict/appl_2k.inc(148): Including file '../../avr8\words/edefer-store.asm' ../../avr8\dict/appl_2k.inc(149): Including file '../../common\words/rdefer-fetch.asm' ../../avr8\dict/appl_2k.inc(150): Including file '../../common\words/rdefer-store.asm' ../../avr8\dict/appl_2k.inc(151): Including file '../../common\words/udefer-fetch.asm' ../../avr8\dict/appl_2k.inc(152): Including file '../../common\words/udefer-store.asm' ../../avr8\dict/appl_2k.inc(153): Including file '../../common\words/defer-store.asm' ../../avr8\dict/appl_2k.inc(154): Including file '../../common\words/defer-fetch.asm' ../../avr8\dict/appl_2k.inc(155): Including file '../../avr8\words/do-defer.asm' ../../avr8\dict/appl_2k.inc(157): Including file '../../common\words/search-wordlist.asm' ../../avr8\dict/appl_2k.inc(158): Including file '../../common\words/traverse-wordlist.asm' ../../avr8\dict/appl_2k.inc(159): Including file '../../common\words/name2string.asm' ../../avr8\dict/appl_2k.inc(160): Including file '../../avr8\words/nfa2cfa.asm' ../../avr8\dict/appl_2k.inc(161): Including file '../../avr8\words/icompare.asm' ../../avr8\dict/appl_2k.inc(163): Including file '../../common\words/star.asm' ../../avr8\dict/appl_2k.inc(164): Including file '../../avr8\words/j.asm' ../../avr8\dict/appl_2k.inc(166): Including file '../../avr8\words/dabs.asm' ../../avr8\dict/appl_2k.inc(167): Including file '../../avr8\words/dnegate.asm' ../../avr8\dict/appl_2k.inc(168): Including file '../../avr8\words/cmove.asm' ../../avr8\dict/appl_2k.inc(169): Including file '../../common\words/2swap.asm' ../../avr8\dict/appl_2k.inc(171): Including file '../../common\words/tib.asm' ../../avr8\dict/appl_2k.inc(173): Including file '../../avr8\words/init-ram.asm' ../../avr8\dict/appl_2k.inc(174): Including file '../../common\words/bounds.asm' ../../avr8\dict/appl_2k.inc(175): Including file '../../common\words/s-to-d.asm' ../../avr8\dict/appl_2k.inc(176): Including file '../../avr8\words/to-body.asm' ../../avr8\amforth.asm(15): Including file 'dict_appl.inc' dict_appl.inc(13): Including file '../../avr8\dict/compiler2.inc' ../../avr8\dict/compiler2.inc(8): Including file '../../avr8\words/set-current.asm' ../../avr8\dict/compiler2.inc(9): Including file '../../avr8\words/wordlist.asm' ../../avr8\dict/compiler2.inc(11): Including file '../../avr8\words/forth-wordlist.asm' ../../avr8\dict/compiler2.inc(12): Including file '../../avr8\words/code.asm' ../../avr8\dict/compiler2.inc(13): Including file '../../avr8\words/end-code.asm' ../../avr8\dict/compiler2.inc(14): Including file '../../avr8\words/marker.asm' ../../avr8\dict/compiler2.inc(15): Including file '../../common\words/postpone.asm' dict_appl.inc(16): Including file 'words/applturnkey.asm' dict_appl.inc(21): Including file '../../common\words/dot-s.asm' dict_appl.inc(26): Including file 'words/build-info.asm' dict_appl.inc(31): Including file '../../common\words/place.asm' dict_appl.inc(32): Including file '../../common\words/word.asm' ../../avr8\amforth.asm(23): Including file '../../avr8\amforth-interpreter.asm' ../../avr8\amforth-interpreter.asm(4): error: Overlap in .cseg: addr=0xc00 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(5): error: Overlap in .cseg: addr=0xc01 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(6): error: Overlap in .cseg: addr=0xc02 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(7): error: Overlap in .cseg: addr=0xc03 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(10): error: Overlap in .cseg: addr=0xc04 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(11): error: Overlap in .cseg: addr=0xc05 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(13): error: Overlap in .cseg: addr=0xc06 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc07 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc08 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc09 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc0a conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(15): error: Overlap in .cseg: addr=0xc0b conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(18): error: Overlap in .cseg: addr=0xc0c conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc0d conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc0e conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc0f conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc10 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(20): error: Overlap in .cseg: addr=0xc11 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(21): error: Overlap in .cseg: addr=0xc12 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(45): error: Overlap in .cseg: addr=0xc13 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(46): error: Overlap in .cseg: addr=0xc14 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(27): error: Overlap in .cseg: addr=0xc15 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(28): error: Overlap in .cseg: addr=0xc16 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(29): error: Overlap in .cseg: addr=0xc17 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(30): error: Overlap in .cseg: addr=0xc18 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(31): error: Overlap in .cseg: addr=0xc19 conflicts with 0xbc:0xe90 ../../avr8\amforth-interpreter.asm(32): error: Overlap in .cseg: addr=0xc1a conflicts with 0xbc:0xe90 ../../avr8\amforth.asm(24): Including file '../../avr8\dict/nrww.inc' ../../avr8\dict/nrww.inc(4): Including file '../../avr8\words/exit.asm' ../../avr8\words/exit.asm(5): error: Overlap in .cseg: addr=0xc1b conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(6): error: Overlap in .cseg: addr=0xc1c conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(6): error: Overlap in .cseg: addr=0xc1d conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(7): error: Overlap in .cseg: addr=0xc1e conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(10): error: Overlap in .cseg: addr=0xc1f conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(12): error: Overlap in .cseg: addr=0xc20 conflicts with 0xbc:0xe90 ../../avr8\words/exit.asm(13): error: Overlap in .cseg: addr=0xc21 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc22 conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(5): Including file '../../avr8\words/execute.asm' ../../avr8\words/execute.asm(5): error: Overlap in .cseg: addr=0xc23 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(6): error: Overlap in .cseg: addr=0xc24 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(6): error: Overlap in .cseg: addr=0xc25 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(6): error: Overlap in .cseg: addr=0xc26 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(6): error: Overlap in .cseg: addr=0xc27 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(7): error: Overlap in .cseg: addr=0xc28 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(10): error: Overlap in .cseg: addr=0xc29 conflicts with 0xbc:0xe90 ../../avr8\words/execute.asm(12): error: Overlap in .cseg: addr=0xc2a conflicts with 0xbc:0xe90 ../../avr8\macros.asm(40): error: Overlap in .cseg: addr=0xc2b conflicts with 0xbc:0xe90 ../../avr8\macros.asm(41): error: Overlap in .cseg: addr=0xc2c conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc2d conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(6): Including file '../../avr8\words/dobranch.asm' ../../avr8\words/dobranch.asm(10): error: Overlap in .cseg: addr=0xc2e conflicts with 0xbc:0xe90 ../../avr8\words/dobranch.asm(12): error: Overlap in .cseg: addr=0xc2f conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc30 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc31 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc32 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc33 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc34 conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(7): Including file '../../avr8\words/docondbranch.asm' ../../avr8\words/docondbranch.asm(10): error: Overlap in .cseg: addr=0xc35 conflicts with 0xbc:0xe90 ../../avr8\words/docondbranch.asm(12): error: Overlap in .cseg: addr=0xc36 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(40): error: Overlap in .cseg: addr=0xc37 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(41): error: Overlap in .cseg: addr=0xc38 conflicts with 0xbc:0xe90 ../../avr8\words/docondbranch.asm(14): error: Overlap in .cseg: addr=0xc39 conflicts with 0xbc:0xe90 ../../avr8\words/docondbranch.asm(15): error: Overlap in .cseg: addr=0xc3a conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc3b conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(10): Including file '../../avr8\words/doliteral.asm' ../../avr8\words/doliteral.asm(10): error: Overlap in .cseg: addr=0xc3c conflicts with 0xbc:0xe90 ../../avr8\macros.asm(45): error: Overlap in .cseg: addr=0xc3d conflicts with 0xbc:0xe90 ../../avr8\macros.asm(46): error: Overlap in .cseg: addr=0xc3e conflicts with 0xbc:0xe90 ../../avr8\words/doliteral.asm(13): error: Overlap in .cseg: addr=0xc3f conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc40 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc41 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc42 conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc43 conflicts with 0xbc:0xe90 ../../avr8\words/doliteral.asm(15): error: Overlap in .cseg: addr=0xc44 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc45 conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(11): Including file '../../avr8\words/dovariable.asm' ../../avr8\words/dovariable.asm(10): error: Overlap in .cseg: addr=0xc46 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(45): error: Overlap in .cseg: addr=0xc47 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(46): error: Overlap in .cseg: addr=0xc48 conflicts with 0xbc:0xe90 ../../avr8\words/dovariable.asm(13): error: Overlap in .cseg: addr=0xc49 conflicts with 0xbc:0xe90 ../../avr8\words/dovariable.asm(14): error: Overlap in .cseg: addr=0xc4a conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc4b conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc4c conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc4d conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc4e conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc4f conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(12): Including file '../../avr8\words/doconstant.asm' ../../avr8\words/doconstant.asm(10): error: Overlap in .cseg: addr=0xc50 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(45): error: Overlap in .cseg: addr=0xc51 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(46): error: Overlap in .cseg: addr=0xc52 conflicts with 0xbc:0xe90 ../../avr8\words/doconstant.asm(13): error: Overlap in .cseg: addr=0xc53 conflicts with 0xbc:0xe90 ../../avr8\words/doconstant.asm(14): error: Overlap in .cseg: addr=0xc54 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc55 conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(13): Including file '../../avr8\words/douser.asm' ../../avr8\words/douser.asm(10): error: Overlap in .cseg: addr=0xc56 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(45): error: Overlap in .cseg: addr=0xc57 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(46): error: Overlap in .cseg: addr=0xc58 conflicts with 0xbc:0xe90 ../../avr8\words/douser.asm(13): error: Overlap in .cseg: addr=0xc59 conflicts with 0xbc:0xe90 ../../avr8\words/douser.asm(14): error: Overlap in .cseg: addr=0xc5a conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(11): error: Overlap in .cseg: addr=0xc5b conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(12): error: Overlap in .cseg: addr=0xc5c conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(13): error: Overlap in .cseg: addr=0xc5d conflicts with 0xbc:0xe90 ../../avr8/devices/atmega8\device.asm(14): error: Overlap in .cseg: addr=0xc5e conflicts with 0xbc:0xe90 ../../avr8\words/douser.asm(16): error: Overlap in .cseg: addr=0xc5f conflicts with 0xbc:0xe90 ../../avr8\words/douser.asm(17): error: Overlap in .cseg: addr=0xc60 conflicts with 0xbc:0xe90 ../../avr8\macros.asm(91): error: Overlap in .cseg: addr=0xc61 conflicts with 0xbc:0xe90 ../../avr8\dict/nrww.inc(14): Including file '../../avr8\words/do-value.asm' ../../avr8\words/do-value.asm(5): error: Overlap in .cseg: addr=0xc62 conflicts with 0xbc:0xe90 ../../avr8\words/do-value.asm(6): error: Overlap in .cseg: addr=0xc63 conflicts with 0xbc:0xe90 ../../avr8\words/do-value.asm(6): FATAL: Giving up after 100 errors Is the guide i was following outdated and i missed something? Malte |
From: Erich W. <ew....@na...> - 2020-08-02 17:32:13
|
Dear AmForthers, as previously announced I made this weekend the official AmForth Weekend 2 / 2020-08-01,02 So what happened? - Commits r2447: tools/amforth-shell.py ported to python3 the corresponding patch was kindly contributed by Tristan Williams, thank you! r2448: added Tristan to contributors list r2449: tools/amforth-upload.py fixed logic error in search_and_open_file Synced website. - Progress - 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? [2020-08-01 Sat] Tristan Williams send a patch to port amforth-shell.py to python3. This work is committed. amforth-upload.py remaining ... but see next point. https://sourceforge.net/p/amforth/mailman/message/37075138/ - 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. [2020-08-01 Sat] Fix attempted, needs someone elso to confirm that it works. I also attempted to port this script to python3 but failed miserably :-) https://sourceforge.net/p/amforth/mailman/message/37075266/ - 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/ [2020-08-01 Sat] Mark Roth has contributed a few things to make this work again. See thread starting here: https://sourceforge.net/p/amforth/mailman/message/37060533/ and especially here: https://sourceforge.net/p/amforth/mailman/message/37063662/ Things are more involved, however, see this thread: https://sourceforge.net/p/amforth/mailman/message/37075410/ - 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 Weekend 3 Shall take place on 2020-08-29,30 --- four weeks from now. Thank you very much for your precious time! Take care and happy hacking, Erich -- May the Forth be with you ... |
From: Erich W. <ew....@na...> - 2020-08-02 14:58:46
|
Hello Tristan, Tristan Williams writes: > Is it possible to build the current AVR AmForth so that it can > co-exist with a bootloader? > > There is a reference in the documentation to changes that would be > required > > http://amforth.sourceforge.net/TG/AVR8.html?highlight=bootloader > > and some older discussions in the mailing list > > https://sourceforge.net/p/amforth/mailman/message/32235234/ > > but nothing since. I was wondering whether this might be a way to use > AmForth with the ATmega32u4 and USB. Someone else asked me the same question more recently ... odd. Well. As far as I understand (anything I wrote below might be only partially correct or even outright wrong): The function, which stores a new value in flash, must reside in the NRWW section of the flash. At least on larger Atmega controllers the size of this section can be changed. atmel_atmega644pa_doc42717.pdf section 27 Bootloader Support Size can be 512, 1024, 2048 to 4096 words (word == 16 Bit, iirc). The size is set with the BOOTSZ[01] fuses in HIGH Fuse Byte. A bootloader needs to reside in NRWW. Then it can read Bytes from /somewhere/ (e.g. serial connection) and write them to flash outside the NRWW section. Writing Flash outside of NRWW needs to account for erasing in blocks, saving and rewriting blocks accordingly, unless writing the new value involves changes from 1 to 0 only (for any individual bit). This makes i! somewhat /interesting/. Currently "i!" lives in the NRWW section together with a number of "core" words, thus overwriting any bootloader that existed on the board. So to make AmForth (or any Forth) coexist with the bootloader, there are at least these options: 1. Forth compiles to RAM only --- normally not what you want. 2. The bootloader living in NRWW exports its "write-to-flash" function as an interface to any interested party outside the bootloader. Most probably such an interface would use a call frame and not the Forth data stack. I have not checked whether there is such a bootloader, which offers this. From the point of view of the bootloader: "you (the user) want to load an application which is rewriting itself? Are you nuts?" I had looked at this many years ago (arduino bootloader) and decided that this was over my head. 3. You could of course write your own bootloader. I have met a person who has done just that. He wrote a small machine monitor, but I'm not aware that he did publish it. Hope this helps, Erich > > Tristan > -- May the Forth be with you ... |
From: Tristan W. <ho...@tj...> - 2020-08-02 13:33:42
|
Hello Mark, Erich, AmForthers, Mark - I have chopped and reordered selected parts of your message to form my reply. I hope this is OK. > It seems that the intent of the refcard was to document the things that > are compiled into the system. +1 For me, the scope of the/each refcard is defined by the distribution build for each architecture (AVR8, msp430, etc.). If the refcard script were part of the hex build process then a custom refcard could be a product of the build process also. > Since the Forth source code could be nearly anything AND has to be > uploaded after the hex files are uploaded to the device you are now > entering into the realm of full generated documentation. +1 I think AmForth's documentation is very good, but as Mark's draft 6.8+ refcard pointed out to me, there are words I did not know existed. There is more to AmForth than made it to the existing documentation. Complete, exhaustive and automated documentation would clearly be great, but as has already been noted, doing this across AVR8/msp430/risc-v/arm + various assembler formats + common/uncommon Forth is challenging. As previously mentioned, part of the challenge being agreeing on what a refcard should be. My vote would be to 1. Limit the refcard to the words written in assembler that contribute to the distribution build of the hex files. 2. Limit the refcard improvements for AmForth 6.9 to AVR8 only 3. Take this as an opportunity to review the distribution builds for AVR8 (which words to include) and make the existence and location of the hex files more prominent in the documentation. > I think that we will really need a roadmap to head for v6.9 and more > importantly v7.0. I think the distinction between 6.9 and 7.0 is a very helpful one. My opinion is that AVR8 has been and currently is the core platform for AmForth. From the from the mailing list archive it is certainly the one that generates the most activity. Whilst I probably have more than enough AVR8 development boards in the parts box to see out my list of projects, I think Matthias saw a longer term future for AmForth beyond AVR8. Perhaps answers to these two questions go someway towards defining a roadmap for 7.0 1) which, if any, of the other mcus AmForth can run on do AmForthers think is the one to focus on? 2) is there a desire/will for AmForth on AVR8 to be extended to run on newer AVR8 such as the ATMEGA4809[1] ? Best wishes, Tristan [1] http://ww1.microchip.com/downloads/en/DeviceDoc/ATmega4808-09-DataSheet-DS40002173B.pdf On 02Aug20 09:53, Mark Roth wrote: > On Sat, Aug 1, 2020 at 10:50 PM Erich Wälde <ew....@na...> wrote: > > > thread hijacked intentionally. > > > 'Thar be pirates! > > > > > > today I spent some time trying to understand the "make-refcard*" > > scripts in some detail. > > > > The script works roughly like this: > > > > <snip> > > > - the first three lines are comments expected to produce > > 1. the stack effects (data, return, compile stacks) > > 2. the category to which this word belongs > > 3. a one line description, what this word is supposed to do. > > > > > Indeed. It also happens to be the reason the perl script works so well, as > well as being so easy to break. It's just too rigid. One thing that the > original has as well is that the 4th line needs to be the "VE" or "XT" > part. If it isn't it will fail. That was the reason for poking around with > the 3 prior lines part of the the script and hardwiring it for the first 3 > lines. > > > > > > Now I could commit Marks patches and not look further. However, there > > are several shortcomings with the current state. > > > > Yeah, don't do that. I really just put up the diff as a reference for > someone that knows Perl. At best right now I would say you could replace > the very outdated refcard.html with the one my changes generate. It is an > improvement just because of the age difference (5.5 to 6.8). For the long > term however, this tool needs to either be fixed entirely or replaced with > something that the build system can use. Having a refcard generated > directly from the source tree is fantastic IMHO. > > > > > > - The script will currently only read "one" directory, whereas we have > > several directories with /different/ asm styles! > > - arm/words/ -- gnu asm style > > - avr8/words/ -- avr asm style > > - common/words/ -- avr, msp430 asm style with .if directives > > - msp430/words/ -- msp430 asm style > > - risc-v/words/ -- riscv asm style > > - shared/words/ -- looks like some macro style for generators > > > > - The generated output (LaTeX, ReST) is done with two different > > scripts. > > > > - The generated output does currently not have any indication, on > > which ports a particular word is available. > > > > This gets to the guts of how to march from here (Google's rendition of the > Latin in the title). Each of the flavors could be determined from their > location in the source tree. The additional information would have to be > added to the hash tables and the generation end would have to be made aware > of all this of course. But in those cases it would seem that you would just > end up with a mess of duplication. The script would need to determine if > something exists already then act accordingly. However, what would be > appropriate? How do you deal with differences in the stack effects because > of the platform? It seems that the end user would be better served if they > could just pull up their flavor of refcard and be done with it. As you > mentioned, right now it is the AVR8 refcard. I don't know how different > each platform is since I am personally only concerned with the AVR one. But > there is of course a wider audience out there and each needs to be dealt > with equally. Having individual refcards would seem to align with the way > that the website documents already work for the different platforms > (sections for linux and windows etc) so that is where I'd cast my vote. > > > > - The script will currently not read any forth code. And words like > > "value" or "c," should show up in the refcard as well, shouldn't > > they? And should the refcard not have the information that you have > > to include one of these files: > > : avr8/lib/forth2012/core/c-comma.frt > > : msp430/lib/forth-2012/core/c-comma.frt > > > > I kind of remember that Matthias decided to move some code from the > > pre-assembled form /back/ to pure Forth. This was in order to help > > dealing with the new, additional architectures. > > > > - in the .asm files I would also like to see a pure Forth equivalent > > as a comment. I have missed this in the past already. > > > > It seems that the intent of the refcard was to document the things that > are compiled into the system. Since the Forth source code could be nearly > anything AND has to be uploaded after the hex files are uploaded to the > device you are now entering into the realm of full generated documentation. > In that case it may be better to look into something like Doxygen (or > whatever the kids are using these days) and properly generate all that. Of > course that would take a one time scouring of all the sources to align with > something of that nature. > As for the Forth source in the asm file I'm not sure about that. I think > I'd rather see the .frt file alongside the .asm file. That is just personal > preference though and I can see the value in having them together. It does > seem like it could complicate the build and/or uploading process. > > ;tldnr > Perl script needs to be updated entirely by someone fluent. > Sources need to be properly commented for the refcard/doc generation. > Maybe define the style to be used (indentation, tabs, spaces etc) for the > sources. > Forth source for all the asm files and maybe even some docs for the rules > that go along with that. I did read some things about that in the mailing > list like how the first .dw value is created. > Is there somewhere that explains the asm file format in more detail or is > it just a Forth standard thing? > > That is probably more than enough for now. I'm willing to help where I can > but I think that we will really need a roadmap to head for v6.9 and more > importantly v7.0. Otherwise these talks are just coffee before heading back > to our own private repos. I guess one can't march until one knows which > direction to march in... > > I'm going swimming now. :) All the best. > Mark > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel |
From: Mark R. <cab...@gm...> - 2020-08-02 06:54:20
|
On Sat, Aug 1, 2020 at 10:50 PM Erich Wälde <ew....@na...> wrote: > thread hijacked intentionally. > 'Thar be pirates! > > today I spent some time trying to understand the "make-refcard*" > scripts in some detail. > > The script works roughly like this: > > <snip> > - the first three lines are comments expected to produce > 1. the stack effects (data, return, compile stacks) > 2. the category to which this word belongs > 3. a one line description, what this word is supposed to do. > > Indeed. It also happens to be the reason the perl script works so well, as well as being so easy to break. It's just too rigid. One thing that the original has as well is that the 4th line needs to be the "VE" or "XT" part. If it isn't it will fail. That was the reason for poking around with the 3 prior lines part of the the script and hardwiring it for the first 3 lines. > > Now I could commit Marks patches and not look further. However, there > are several shortcomings with the current state. > > Yeah, don't do that. I really just put up the diff as a reference for someone that knows Perl. At best right now I would say you could replace the very outdated refcard.html with the one my changes generate. It is an improvement just because of the age difference (5.5 to 6.8). For the long term however, this tool needs to either be fixed entirely or replaced with something that the build system can use. Having a refcard generated directly from the source tree is fantastic IMHO. > > - The script will currently only read "one" directory, whereas we have > several directories with /different/ asm styles! > - arm/words/ -- gnu asm style > - avr8/words/ -- avr asm style > - common/words/ -- avr, msp430 asm style with .if directives > - msp430/words/ -- msp430 asm style > - risc-v/words/ -- riscv asm style > - shared/words/ -- looks like some macro style for generators > > - The generated output (LaTeX, ReST) is done with two different > scripts. > > - The generated output does currently not have any indication, on > which ports a particular word is available. > > This gets to the guts of how to march from here (Google's rendition of the Latin in the title). Each of the flavors could be determined from their location in the source tree. The additional information would have to be added to the hash tables and the generation end would have to be made aware of all this of course. But in those cases it would seem that you would just end up with a mess of duplication. The script would need to determine if something exists already then act accordingly. However, what would be appropriate? How do you deal with differences in the stack effects because of the platform? It seems that the end user would be better served if they could just pull up their flavor of refcard and be done with it. As you mentioned, right now it is the AVR8 refcard. I don't know how different each platform is since I am personally only concerned with the AVR one. But there is of course a wider audience out there and each needs to be dealt with equally. Having individual refcards would seem to align with the way that the website documents already work for the different platforms (sections for linux and windows etc) so that is where I'd cast my vote. > - The script will currently not read any forth code. And words like > "value" or "c," should show up in the refcard as well, shouldn't > they? And should the refcard not have the information that you have > to include one of these files: > : avr8/lib/forth2012/core/c-comma.frt > : msp430/lib/forth-2012/core/c-comma.frt > > I kind of remember that Matthias decided to move some code from the > pre-assembled form /back/ to pure Forth. This was in order to help > dealing with the new, additional architectures. > > - in the .asm files I would also like to see a pure Forth equivalent > as a comment. I have missed this in the past already. > > It seems that the intent of the refcard was to document the things that are compiled into the system. Since the Forth source code could be nearly anything AND has to be uploaded after the hex files are uploaded to the device you are now entering into the realm of full generated documentation. In that case it may be better to look into something like Doxygen (or whatever the kids are using these days) and properly generate all that. Of course that would take a one time scouring of all the sources to align with something of that nature. As for the Forth source in the asm file I'm not sure about that. I think I'd rather see the .frt file alongside the .asm file. That is just personal preference though and I can see the value in having them together. It does seem like it could complicate the build and/or uploading process. ;tldnr Perl script needs to be updated entirely by someone fluent. Sources need to be properly commented for the refcard/doc generation. Maybe define the style to be used (indentation, tabs, spaces etc) for the sources. Forth source for all the asm files and maybe even some docs for the rules that go along with that. I did read some things about that in the mailing list like how the first .dw value is created. Is there somewhere that explains the asm file format in more detail or is it just a Forth standard thing? That is probably more than enough for now. I'm willing to help where I can but I think that we will really need a roadmap to head for v6.9 and more importantly v7.0. Otherwise these talks are just coffee before heading back to our own private repos. I guess one can't march until one knows which direction to march in... I'm going swimming now. :) All the best. Mark |
From: Erich W. <ew....@na...> - 2020-08-01 19:51:09
|
thread hijacked intentionally. Hello Mark, dear AmForthers, today I spent some time trying to understand the "make-refcard*" scripts in some detail. The script works roughly like this: - it reads the .asm files in "one" "hard coded" directory ("../common/words"). - for every file the function "readASM" goes to some length to digest the content. - the first three lines are comments expected to produce 1. the stack effects (data, return, compile stacks) 2. the category to which this word belongs 3. a one line description, what this word is supposed to do. - the name of the word is searched for in the '^VE_...' to '^XT_...' section of the code (^ being the beginning of the line). - the strings found during this procedure are stored into several hash-tables, where the XT_LABEL of the word is used as the key into these tables. - after all files are digested and the hash-tables are filled accordingly, the function printLaTeX will walk through these tables and print their content accordingly. Mark has spent some time to fix the comment headers and make the script work again. Thank you for your time! See thread starting here: https://sourceforge.net/p/amforth/mailman/message/37060533/ and especially here: https://sourceforge.net/p/amforth/mailman/message/37063662/ ------ Now I could commit Marks patches and not look further. However, there are several shortcomings with the current state. - The script will currently only digest AVR style .asm files, whereas we have different asm styles (see next point). - The script will currently only read "one" directory, whereas we have several directories with /different/ asm styles! - arm/words/ -- gnu asm style - avr8/words/ -- avr asm style - common/words/ -- avr, msp430 asm style with .if directives - msp430/words/ -- msp430 asm style - risc-v/words/ -- riscv asm style - shared/words/ -- looks like some macro style for generators - The generated output (LaTeX, ReST) is done with two different scripts. - The generated output does currently not have any indication, on which ports a particular word is available. - The script will currently not read any forth code. And words like "value" or "c," should show up in the refcard as well, shouldn't they? And should the refcard not have the information that you have to include one of these files: : avr8/lib/forth2012/core/c-comma.frt : msp430/lib/forth-2012/core/c-comma.frt I kind of remember that Matthias decided to move some code from the pre-assembled form /back/ to pure Forth. This was in order to help dealing with the new, additional architectures. - in the .asm files I would also like to see a pure Forth equivalent as a comment. I have missed this in the past already. Apart from that the perl scripts are somewhat clunky and would deserve some more modern style upgrade. Perl style i.e. I have no interest in moving anything to Python, as you might guess. So. Things are a whee bit muddy, unfortunately. I currently do not see, where we would want to go. What would a good "Reference Card" look like? Once that becomes clearer, I'm sure there are ways to get there. Happy forthing! Erich, still undecided on this -- May the Forth be with you ... |
From: Erich W. <ew....@na...> - 2020-08-01 14:16:47
|
Dear AmForthers, I had pointed out that I use an old version of amforth-upload.py, because newer ones did not work for me. So I spent some time with this. Short version for "trunk": The expanded path of the filename given as argument is not passed on to be opened. Please find two patches below, one for version 4.9, one for trunk. The changes fix uploading one or two (hopefully more) files, however, I have not tested any #include trickery. So if someone else would please be so kind as to test the patch for trunk on their environment, it would be much appreciated. Happy forthing, Erich --- the gory details ------------------------------------------------- 1. using md5sum and a little shell acrobatics one can find there are seven different versions of this script: a6e355913f567148d6129638d1979dd0 releases/2.7/tools/amforth-upload.py d98ce0c817fd19cba4474e13b56f566f releases/3.4/tools/amforth-upload.py c0a6266c243a724da85074fc6a7bc315 releases/4.0/tools/amforth-upload.py 3f6c0a9b8616e4636a2cc9f06d1ede10 releases/4.1/tools/amforth-upload.py 7bee7d2eb669aad5c4b77c93c74d1941 releases/4.7/tools/amforth-upload.py e8f55df9f17ceb38228ba68270ca019d releases/4.9/tools/amforth-upload.py faf3f05fbb4126a290d435e83e3e90ee releases/5.7/tools/amforth-upload.py faf3f05fbb4126a290d435e83e3e90ee trunk/tools/amforth-upload.py I happen to use the one from release 4.0. 2. using more shell acrobatics # --- doit.sh ---------------------------------------------- #!/bin/bash CONSOLE=/dev/ttyUSB1 TOP=$HOME/Forth/amforth export R="" for R in 2.7 3.4 4.0 4.1 4.7 4.9 5.7 do echo "--- $R ---" cat <<EOF > ./t_up-${R}.fs \ Blafasel ${R} marker --up${R}-- : msg ." this is uploader rev $R" cr ; msg EOF cat ./t_up-${R}.fs $TOP/releases/$R/tools/amforth-upload.py -v -t $CONSOLE ./t_up-$R.fs done # ---------------------------------------------------------- and a controller shows that versions up to and including 4.7 work for me. This narrows the questionable change down to version 4.8->4.9. 3. "printf-Style" debugging lead me into function "search_and_open_file". And into the low-lands of a triple for-loop. Where once the item in question was found, the loops did not stop. So a "break" in the innermost loop would fix it. At least for uploading "one" file. Or two files. I did not test any #include trickery. #+begin_src diff ew@ceres:~/eGeek/sourceforge.net/amforth-code/releases/4.9/tools 30 > svn diff --extensions --ignore-space-change Index: amforth-upload.py =================================================================== --- amforth-upload.py (revision 2442) +++ amforth-upload.py (working copy) @@ -55,6 +55,7 @@ filedirs[f].append([root]) else: filedirs[f]=[root] + break if len(filedirs[f])==1: print "using ", f," from", filedirs[f][0] filehandle = file(os.path.join(filedirs[f][0], f)) #+end_src This works for the script in Version 4.9. not for trunk! 4. The script in version "trunk" is even more involved in the same triple for-loop area. However, it seems the the beautifully crafted filename is in the end not handed on to open the file. #+begin_src diff ew@ceres:~/Forth/atmega2/17_amforth_maint/03_amforth-upload 114 > diff -wu amforth-upload-trunk.py.orig amforth-upload-trunk.py --- amforth-upload-trunk.py.orig 2020-08-01 15:39:27.148283400 +0200 +++ amforth-upload-trunk.py 2020-08-01 16:04:50.262624068 +0200 @@ -59,9 +59,10 @@ if fpath: filedirs[f].append(fpath) else: filedirs[f]=[fpath] + break if len(filedirs[basefilename])==1: - print "\nusing ", filename," from", filedirs[filename][0] - filehandle = file(filedirs[filename][0]) + print "\nusing ", fpath + filehandle = file(fpath) return filehandle else: # oops, too many files or no one at all no file found? #+end_src Again, I have not tested any #include trickery. -- May the Forth be with you ... |
From: Erich W. <ew....@na...> - 2020-08-01 07:53:55
|
Hello Tristan, Tristan Williams writes: > Hello, > > I have modified amforth-shell.py to run under python3 and put up a > patch here > > https://tjnw.co.uk/new-shell/doc/ > > as the patch seemed a little too large for a mailing list. Thanks for the patch. Commit r2447 is yours. The patch is nicely readable (even by a mostly python-illiterate maintainer :) and condenses to a few cases of syntax change: - print -> print() - OBJ.has_key(X) -> X in OBJ - except X, e: -> except X as e: - add encode() decode() to character handling I applied the patch mostly verbatim and checked that the line changed in r2443 did not disappear. It didn't :-) This being said, the patch was something short of 300 lines. It is NOT too big for the mailing list. And in fact, the mailing list is our public archive ... so I add the committed version of the patch below for everyones inspiration. > > Best wishes, > Tristan Happy Forthing, Erich --- patch ---------------------------------------------------------------------- ew@ceres:~/eGeek/sourceforge.net/amforth-code/trunk 45 > svn diff -r2446 tools/amforth-shell.py Password: Index: tools/amforth-shell.py =================================================================== --- tools/amforth-shell.py (revision 2446) +++ tools/amforth-shell.py (working copy) @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # # pySerial based upload & interpreter interaction module for amforth. # @@ -87,7 +87,7 @@ # # #include <file> # Upload the named <file> before proceeding further. -# +# # #require <file> # Like #include but would skip if <file> was already uploaded # during the shell session. @@ -258,7 +258,7 @@ import re import readline import serial -import StringIO +from io import StringIO import subprocess import sys import traceback @@ -388,7 +388,7 @@ interact_directives = [ "#cd", "#edit", "#require", "#include", "#directive", "#ignore-error", "#error-on-output", "#string-start-word", "#quote-char-word", - "#timeout", "#timeout-next", "#update-words", "#exit", + "#timeout", "#timeout-next", "#update-words", "#exit", "#update-cpu", "#update-files" ] # standard words are usually uppercase, but amforth needs @@ -487,7 +487,7 @@ "EDITOR","STATE","[ELSE]","[IF]","[THEN]", # *** Wordset TOOLS-EXT-obsolescent "FORGET", - # *** Tester wordset + # *** Tester wordset "T{", "}T", ] def __init__(self, serial_port="/dev/amforth", rtscts=False, speed=38400): @@ -511,7 +511,7 @@ self._last_error = () self._last_edited_file = None self._config = BehaviorManager() - if os.environ.has_key("AMFORTH_LIB"): + if "AMFORTH_LIB" in os.environ: self._search_list = os.environ["AMFORTH_LIB"].split(":") else: self._search_list=["."] @@ -592,9 +592,9 @@ except AMForthException: return 1 except KeyboardInterrupt: - print "\nBye bye" - except Exception, e: - print "\n---- Unexpected exception ----" + print( "\nBye bye") + except Exception as e: + print( "\n---- Unexpected exception ----") traceback.print_exc() return 1 finally: @@ -605,10 +605,10 @@ def parse_arg(self): "Argument parsing used when module is used as a script" - parser = argparse.ArgumentParser(description="Interact with AMForth", + parser = argparse.ArgumentParser(description="Interact with AMForth", epilog=""" -The environment variable AMFORTH_LIB can be set with to a colon (:) separated -list of directories that are recursivly searched for file names. If not set, +The environment variable AMFORTH_LIB can be set with to a colon (:) separated +list of directories that are recursivly searched for file names. If not set, the current work directory is used instead. The script assumes to be located in the standard amforth installation under @@ -698,7 +698,7 @@ timeout, False, self.serial_rtscts, None, False) - except serial.SerialException, e: + except serial.SerialException as e: raise AMForthException("Serial port connect failure: %s" % str(e)) def serial_disconnect(self): @@ -728,7 +728,7 @@ try: self.send_line("\n") # Get empty line echo to make sure ready self.read_response() # Throw away the response. - except serial.SerialException, e: + except serial.SerialException as e: self.progress_callback("Error", None, str(e)) raise AMForthException("Failed to get prompt: %s" % str(e)) finally: @@ -745,18 +745,18 @@ fpath=filename self.progress_callback("Information", None, "using "+ filename+" verbatim") else: - if not self._filedirs.has_key(filename): + if not filename in self._filedirs: self.progress_callback("Error", None, "file "+ filename+" not found in search path") raise AMForthException("file " + filename + " not found in search path") if len(self._filedirs[filename])!=1: # oops, too many files or no one at all found? - self.progress_callback("Error", None, "Wrong # of file "+ filename+" found in search path") # add this line above the one below + self.progress_callback("Error", None, "Wrong # of file " + filename + " found in search path") # add this line above the one below raise AMForthException("Wrong # of file occurances: " + filename + " ("+str(len(self._filedirs[filename]))+")\n\t"+"\n\t".join(self._filedirs[filename])) self.progress_callback("Information", None, "using "+ filename+" from"+ self._filedirs[filename][0]) fpath = os.path.join(self._filedirs[filename][0], filename) self._config.push_file(fpath) fdir=os.path.dirname(fpath) - print "**** " + self._config.current_behavior.working_directory + print ("**** " + self._config.current_behavior.working_directory) if os.path.isabs(fdir): dirpath = os.path.normpath(fdir) else: @@ -767,7 +767,7 @@ try: try: self.find_prompt() - except AMForthException, e: + except AMForthException as e: self.progress_callback("Error", None, str(e)) raise if self._amforth_cpu=="": @@ -777,17 +777,17 @@ try: with open(fpath, "r") as f: self._send_file_contents(f) - except (OSError, IOError), e: + except (OSError, IOError) as e: self.progress_callback("Error", None, str(e)) raise AMForthException("Unknown file: " + fpath) self._last_error = () finally: - print "**** " + self._config.current_behavior.working_directory + print ("**** " + self._config.current_behavior.working_directory) self._config.pop_file() self._serialconn.timeout = self._config.current_behavior.timeout try: os.chdir(self._config.current_behavior.working_directory) - except OSError, e: + except OSError as e: errmsg = ("Failed to change to directory '%s': %s" % (self._config.current_behavior.working_directory, str(e))) @@ -806,7 +806,7 @@ self._serialconn.timeout = self._config.current_behavior.timeout try: os.chdir(self._config.current_behavior.working_directory) - except OSError, e: + except OSError as e: errmsg = ("Failed to change to directory '%s': %s" % (self._config.current_behavior.working_directory, str(e))) @@ -829,7 +829,7 @@ directive, directive_arg) = self.preprocess_line(full_line, in_comment, self.upload_directives) - except AMForthException, e: + except AMForthException as e: self._record_error(lineno) self.progress_callback("Error", lineno, full_line) self.progress_callback("Error", None, str(e)) @@ -848,7 +848,7 @@ continue try: self.send_line(line) - except AMForthException, e: + except AMForthException as e: self._record_error(lineno) self.progress_callback("Error", lineno, full_line) self.progress_callback("Error", None, str(e)) @@ -875,7 +875,6 @@ raise AMForthException(errmsg) elif self._log: self._log.write(line + "\n") - else: self.progress_callback("Error", None, response) if not self._config.current_behavior.ignore_errors: @@ -1010,7 +1009,7 @@ elif directive == "#timeout": try: timeout = float(directive_arg) - except ValueError, e: + except ValueError as e: self.progress_callback("Error", None, "Invalid timeout") return self._config.current_file_behavior.timeout = timeout @@ -1017,7 +1016,7 @@ elif directive == "#timeout-next": try: timeout = float(directive_arg) - except ValueError, e: + except ValueError as e: self.progress_callback("Error", None, "Invalid timeout") return behavior = copy.deepcopy(self._config.current_behavior) @@ -1078,14 +1077,15 @@ if self.debug: sys.stderr.write(repr(c)[1:-1]+"->") sys.stderr.flush() - self._serialconn.write(c) + self._serialconn.write(c.encode()) self._serialconn.flush() r = self._serialconn.read(1) # Read echo of character we just sent + r=r.decode() while r and (r != c or (c == '\t' and r != ' ')): if self.debug: sys.stderr.write(repr(r)[1:-1]) sys.stderr.flush() - r = self._serialconn.read(1) + r = self._serialconn.read(1).decode() if not r: raise AMForthException("Input character not echoed.") if self.debug: @@ -1098,7 +1098,7 @@ if self.debug: sys.stderr.write("|r( )") response = "" - r = self._serialconn.read(1) + r = self._serialconn.read(1).decode() while r != "": if self.debug: sys.stderr.write(repr(r)[1:-1]) @@ -1111,7 +1111,7 @@ elif self.amforth_error_cre.search(response) is not None: response = response[:-3] # Don't return prompt in response break - r = self._serialconn.read(1) + r = self._serialconn.read(1).decode() if not response: response = "Timed out waiting for ok response" if self.debug: @@ -1120,9 +1120,9 @@ def print_progress(self, type, lineno, info): if not lineno: - print "|%s=%s" % (type[:1], info) + print("|%s=%s" % (type[:1], info)) else: - print "|%s|%5d|%s" % (type[:1], lineno, info) + print ("|%s|%5d|%s" % (type[:1], lineno, info)) def interact(self): self.progress_callback("Interact", None, @@ -1131,7 +1131,7 @@ self._config.push_file(None) try: self.find_prompt() - except AMForthException, e: + except AMForthException as e: self.progress_callback("Error", None, str(e)) self._config.pop_file() raise @@ -1143,15 +1143,15 @@ prompt="("+self._amforth_cpu+")> " else: prompt="> " - full_line = raw_input(prompt) - except EOFError, e: - print "" + full_line = input(prompt) + except EOFError as e: + print("") break self._config.advance_line() self._serialconn.timeout = self._config.current_behavior.timeout try: os.chdir(self._config.current_behavior.working_directory) - except OSError, e: + except OSError as e: errmsg = ("Failed to change to directory '%s': %s" % (self._config.current_behavior.working_directory, str(e))) @@ -1183,7 +1183,7 @@ elif self._last_edited_file: self.edit_file(self._last_edited_file) else: - print "No file to edit" + print("No file to edit") continue self.handle_common_directives(directive, directive_arg) if directive == "#include" or directive == "#require": @@ -1193,14 +1193,14 @@ continue else: self.send_line(line) - print self.read_response() - except AMForthException, e: - print "Error: " + str(e) + print (self.read_response()) + except AMForthException as e: + print ("Error: " + str(e)) self._config.pop_file() self._serialconn.timeout = self._config.current_behavior.timeout try: os.chdir(self._config.current_behavior.working_directory) - except OSError, e: + except OSError as e: errmsg = ("Failed to change to directory '%s': %s" % (self._config.current_behavior.working_directory, str(e))) @@ -1218,7 +1218,7 @@ ".frt-interact.history") try: readline.read_history_file(histfn) - except IOError, e: + except IOError as e: pass self._update_words() self._update_cpu() @@ -1277,7 +1277,7 @@ # print f fpath=os.path.realpath(os.path.join(root, f)) fpathdir=os.path.dirname(fpath) - if self._filedirs.has_key(f): + if f in self._filedirs: # check for duplicates for d in self._filedirs[f]: if d==fpathdir: @@ -1359,7 +1359,7 @@ try: subprocess.call(cmd) self._last_edited_file = filename - except OSError, e: + except OSError as e: raise AMForthException("Could not start editor: "+self.editor) else: raise AMForthException("No editor specified. Use --editor or EDITOR environment variable") -------------------------------------------------------------------------------- -- May the Forth be with you ... |
From: Mark R. <cab...@gm...> - 2020-07-18 07:07:09
|
I corrected a small error in the second diff in build-info.tmpl. There was an extra db padding that wasn't needed since it wasn't a string but a number. I fixed it in the padding.diff link. On Fri, Jul 17, 2020 at 3:17 PM Mark Roth <cab...@gm...> wrote: > I may as well be complete. > http://ipreferpi.eu/DL/padding.diff > > Those are the fixes for the padding warnings while building. Not really > terribly important but better all the way than half-way there. > This one though actually supersedes the other for ud-star.asm and > q-negate.asm since they have a lesser change in the first diff I posted. > Their fixes of adding the ",0" are on lines 12 and 15 respectively and > could just be fixed manually. > > Now I'm really done and the weekend is still half a day away. > > On Fri, Jul 17, 2020 at 1:20 PM Mark Roth <cab...@gm...> wrote: > >> ugh, ignore the ">" at the start of the script lines obviously. I had the >> whole mess quoted so it made a mockery of things. >> >> On Fri, Jul 17, 2020 at 12:40 PM Mark Roth <cab...@gm...> wrote: >> >>> I cleaned up my diff of the svn (amforth-code) and put it up to see if >>> it would be helpful. Be sure to look through the comments on the changed >>> .asm files. In particular the description on abort-string.asm. I'm not >>> seeing the -2 error and that is a set of comments I pulled from an older >>> revision. It can be found here. >>> http://ipreferpi.eu/DL/mywork.diff >>> >>> To build the refcard page using the (mostly) original script I had to >>> resort to dumping the avr8 and common words into a big pile and let the >>> perl voodoo do what it do. So, that is my disclaimer that it is an avr8 >>> AmForth Refcard only. One could use the same technique to make the other >>> flavors as well I suppose. To do that I just made a little helper script >>> that I run from the doc directory. >>> >>> #!/bin/bash >>>> mkdir ../tempwords >>>> cp -r ../common/words ../tempwords >>>> cp -r ../avr8/words ../tempwords >>>> cd ../tools/ ; perl make-refcard-rst ; cd ../doc >>>> make htdocs >>>> #make onlyepub >>>> rm -r ../tempwords >>> >>> >>> It does the trick for me locally anyhow. >>> >>> So that completes my AmForth conversion via AmForth Weekend 1 >>> :P >>> >>> All the best (until the next one), >>> Mark >>> >>> >>> On Thu, Jul 16, 2020 at 11:02 AM Mark Roth <cab...@gm...> wrote: >>> >>>> Of those you see in the list, there are about 20 .asm files that aren't >>>> included in even the 8k core build. I jammed about a dozen of them into my >>>> appl_core dictionary include file just to try and fill it up. Plus of >>>> course the hardware drivers that wouldn't be included anyhow if you don't >>>> need them. I should probably go through my notes and start making patches >>>> for all the files I changed so they can be vetted. I'm sure I made some >>>> errors (or just didn't know from looking at the comments) that would need >>>> to be sorted out. :) >>>> >>>> On Thu, Jul 16, 2020 at 9:53 AM Tristan Williams <ho...@tj...> >>>> wrote: >>>> >>>>> Hello Mark, >>>>> >>>>> Brilliant! There are AmForth words there I hadn't realised it had. >>>>> >>>>> Best wishes, >>>>> Tristan >>>>> >>>>> On 16Jul20 00:49, Mark Roth wrote: >>>>> > It's almost there at least as a page that can temporarily replace the >>>>> > temporary v5.5 one. This is generated from the current svn sources >>>>> and >>>>> > consists of the avr8 and common words directories. I cleaned up as >>>>> many of >>>>> > the files that I could (and those will for sure need some Forth eyes >>>>> on >>>>> > them) by taking info from older versions when the comment block was >>>>> > missing. The entire thing is generated by copying the avr8/words and >>>>> > common/words into a temp directory then running the refcard python >>>>> file >>>>> > against that. You can take a look at it here. >>>>> > http://ipreferpi.eu/htdocs/TG/refcard.html >>>>> > >>>>> > On Mon, Jul 13, 2020 at 10:19 PM Mark Roth <cab...@gm...> >>>>> wrote: >>>>> > >>>>> > > I see there are a few duplicates but I'm not really sure why. Like >>>>> > > RECOGNIZE from recognize.asm. It must have something to do with >>>>> the way the >>>>> > > msp430 header is formatted that is different from other ones since >>>>> it isn't >>>>> > > all of them. I'm sure it is in that voodoo of slashes somewhere... >>>>> > > >>>>> > > all the best, >>>>> > > Mark >>>>> > > >>>>> > >> >>>>> > >> CLIPPED >>>>> > >>>>> > _______________________________________________ >>>>> > Amforth-devel mailing list for http://amforth.sf.net/ >>>>> > Amf...@li... >>>>> > https://lists.sourceforge.net/lists/listinfo/amforth-devel >>>>> > >>>>> >>>>> >>>>> _______________________________________________ >>>>> Amforth-devel mailing list for http://amforth.sf.net/ >>>>> Amf...@li... >>>>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >>>>> >>>> |
From: Mark R. <cab...@gm...> - 2020-07-17 12:17:33
|
I may as well be complete. http://ipreferpi.eu/DL/padding.diff Those are the fixes for the padding warnings while building. Not really terribly important but better all the way than half-way there. This one though actually supersedes the other for ud-star.asm and q-negate.asm since they have a lesser change in the first diff I posted. Their fixes of adding the ",0" are on lines 12 and 15 respectively and could just be fixed manually. Now I'm really done and the weekend is still half a day away. On Fri, Jul 17, 2020 at 1:20 PM Mark Roth <cab...@gm...> wrote: > ugh, ignore the ">" at the start of the script lines obviously. I had the > whole mess quoted so it made a mockery of things. > > On Fri, Jul 17, 2020 at 12:40 PM Mark Roth <cab...@gm...> wrote: > >> I cleaned up my diff of the svn (amforth-code) and put it up to see if it >> would be helpful. Be sure to look through the comments on the changed .asm >> files. In particular the description on abort-string.asm. I'm not seeing >> the -2 error and that is a set of comments I pulled from an older revision. >> It can be found here. >> http://ipreferpi.eu/DL/mywork.diff >> >> To build the refcard page using the (mostly) original script I had to >> resort to dumping the avr8 and common words into a big pile and let the >> perl voodoo do what it do. So, that is my disclaimer that it is an avr8 >> AmForth Refcard only. One could use the same technique to make the other >> flavors as well I suppose. To do that I just made a little helper script >> that I run from the doc directory. >> >> #!/bin/bash >>> mkdir ../tempwords >>> cp -r ../common/words ../tempwords >>> cp -r ../avr8/words ../tempwords >>> cd ../tools/ ; perl make-refcard-rst ; cd ../doc >>> make htdocs >>> #make onlyepub >>> rm -r ../tempwords >> >> >> It does the trick for me locally anyhow. >> >> So that completes my AmForth conversion via AmForth Weekend 1 >> :P >> >> All the best (until the next one), >> Mark >> >> >> On Thu, Jul 16, 2020 at 11:02 AM Mark Roth <cab...@gm...> wrote: >> >>> Of those you see in the list, there are about 20 .asm files that aren't >>> included in even the 8k core build. I jammed about a dozen of them into my >>> appl_core dictionary include file just to try and fill it up. Plus of >>> course the hardware drivers that wouldn't be included anyhow if you don't >>> need them. I should probably go through my notes and start making patches >>> for all the files I changed so they can be vetted. I'm sure I made some >>> errors (or just didn't know from looking at the comments) that would need >>> to be sorted out. :) >>> >>> On Thu, Jul 16, 2020 at 9:53 AM Tristan Williams <ho...@tj...> >>> wrote: >>> >>>> Hello Mark, >>>> >>>> Brilliant! There are AmForth words there I hadn't realised it had. >>>> >>>> Best wishes, >>>> Tristan >>>> >>>> On 16Jul20 00:49, Mark Roth wrote: >>>> > It's almost there at least as a page that can temporarily replace the >>>> > temporary v5.5 one. This is generated from the current svn sources and >>>> > consists of the avr8 and common words directories. I cleaned up as >>>> many of >>>> > the files that I could (and those will for sure need some Forth eyes >>>> on >>>> > them) by taking info from older versions when the comment block was >>>> > missing. The entire thing is generated by copying the avr8/words and >>>> > common/words into a temp directory then running the refcard python >>>> file >>>> > against that. You can take a look at it here. >>>> > http://ipreferpi.eu/htdocs/TG/refcard.html >>>> > >>>> > On Mon, Jul 13, 2020 at 10:19 PM Mark Roth <cab...@gm...> >>>> wrote: >>>> > >>>> > > I see there are a few duplicates but I'm not really sure why. Like >>>> > > RECOGNIZE from recognize.asm. It must have something to do with the >>>> way the >>>> > > msp430 header is formatted that is different from other ones since >>>> it isn't >>>> > > all of them. I'm sure it is in that voodoo of slashes somewhere... >>>> > > >>>> > > all the best, >>>> > > Mark >>>> > > >>>> > >> >>>> > >> CLIPPED >>>> > >>>> > _______________________________________________ >>>> > Amforth-devel mailing list for http://amforth.sf.net/ >>>> > Amf...@li... >>>> > https://lists.sourceforge.net/lists/listinfo/amforth-devel >>>> > >>>> >>>> >>>> _______________________________________________ >>>> Amforth-devel mailing list for http://amforth.sf.net/ >>>> Amf...@li... >>>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >>>> >>> |
From: Mark R. <cab...@gm...> - 2020-07-17 10:21:04
|
ugh, ignore the ">" at the start of the script lines obviously. I had the whole mess quoted so it made a mockery of things. On Fri, Jul 17, 2020 at 12:40 PM Mark Roth <cab...@gm...> wrote: > I cleaned up my diff of the svn (amforth-code) and put it up to see if it > would be helpful. Be sure to look through the comments on the changed .asm > files. In particular the description on abort-string.asm. I'm not seeing > the -2 error and that is a set of comments I pulled from an older revision. > It can be found here. > http://ipreferpi.eu/DL/mywork.diff > > To build the refcard page using the (mostly) original script I had to > resort to dumping the avr8 and common words into a big pile and let the > perl voodoo do what it do. So, that is my disclaimer that it is an avr8 > AmForth Refcard only. One could use the same technique to make the other > flavors as well I suppose. To do that I just made a little helper script > that I run from the doc directory. > > #!/bin/bash >> mkdir ../tempwords >> cp -r ../common/words ../tempwords >> cp -r ../avr8/words ../tempwords >> cd ../tools/ ; perl make-refcard-rst ; cd ../doc >> make htdocs >> #make onlyepub >> rm -r ../tempwords > > > It does the trick for me locally anyhow. > > So that completes my AmForth conversion via AmForth Weekend 1 > :P > > All the best (until the next one), > Mark > > > On Thu, Jul 16, 2020 at 11:02 AM Mark Roth <cab...@gm...> wrote: > >> Of those you see in the list, there are about 20 .asm files that aren't >> included in even the 8k core build. I jammed about a dozen of them into my >> appl_core dictionary include file just to try and fill it up. Plus of >> course the hardware drivers that wouldn't be included anyhow if you don't >> need them. I should probably go through my notes and start making patches >> for all the files I changed so they can be vetted. I'm sure I made some >> errors (or just didn't know from looking at the comments) that would need >> to be sorted out. :) >> >> On Thu, Jul 16, 2020 at 9:53 AM Tristan Williams <ho...@tj...> wrote: >> >>> Hello Mark, >>> >>> Brilliant! There are AmForth words there I hadn't realised it had. >>> >>> Best wishes, >>> Tristan >>> >>> On 16Jul20 00:49, Mark Roth wrote: >>> > It's almost there at least as a page that can temporarily replace the >>> > temporary v5.5 one. This is generated from the current svn sources and >>> > consists of the avr8 and common words directories. I cleaned up as >>> many of >>> > the files that I could (and those will for sure need some Forth eyes on >>> > them) by taking info from older versions when the comment block was >>> > missing. The entire thing is generated by copying the avr8/words and >>> > common/words into a temp directory then running the refcard python file >>> > against that. You can take a look at it here. >>> > http://ipreferpi.eu/htdocs/TG/refcard.html >>> > >>> > On Mon, Jul 13, 2020 at 10:19 PM Mark Roth <cab...@gm...> >>> wrote: >>> > >>> > > I see there are a few duplicates but I'm not really sure why. Like >>> > > RECOGNIZE from recognize.asm. It must have something to do with the >>> way the >>> > > msp430 header is formatted that is different from other ones since >>> it isn't >>> > > all of them. I'm sure it is in that voodoo of slashes somewhere... >>> > > >>> > > all the best, >>> > > Mark >>> > > >>> > >> >>> > >> CLIPPED >>> > >>> > _______________________________________________ >>> > Amforth-devel mailing list for http://amforth.sf.net/ >>> > Amf...@li... >>> > https://lists.sourceforge.net/lists/listinfo/amforth-devel >>> > >>> >>> >>> _______________________________________________ >>> Amforth-devel mailing list for http://amforth.sf.net/ >>> Amf...@li... >>> https://lists.sourceforge.net/lists/listinfo/amforth-devel >>> >> |
From: Mark R. <cab...@gm...> - 2020-07-17 09:40:38
|
I cleaned up my diff of the svn (amforth-code) and put it up to see if it would be helpful. Be sure to look through the comments on the changed .asm files. In particular the description on abort-string.asm. I'm not seeing the -2 error and that is a set of comments I pulled from an older revision. It can be found here. http://ipreferpi.eu/DL/mywork.diff To build the refcard page using the (mostly) original script I had to resort to dumping the avr8 and common words into a big pile and let the perl voodoo do what it do. So, that is my disclaimer that it is an avr8 AmForth Refcard only. One could use the same technique to make the other flavors as well I suppose. To do that I just made a little helper script that I run from the doc directory. #!/bin/bash > mkdir ../tempwords > cp -r ../common/words ../tempwords > cp -r ../avr8/words ../tempwords > cd ../tools/ ; perl make-refcard-rst ; cd ../doc > make htdocs > #make onlyepub > rm -r ../tempwords It does the trick for me locally anyhow. So that completes my AmForth conversion via AmForth Weekend 1 :P All the best (until the next one), Mark On Thu, Jul 16, 2020 at 11:02 AM Mark Roth <cab...@gm...> wrote: > Of those you see in the list, there are about 20 .asm files that aren't > included in even the 8k core build. I jammed about a dozen of them into my > appl_core dictionary include file just to try and fill it up. Plus of > course the hardware drivers that wouldn't be included anyhow if you don't > need them. I should probably go through my notes and start making patches > for all the files I changed so they can be vetted. I'm sure I made some > errors (or just didn't know from looking at the comments) that would need > to be sorted out. :) > > On Thu, Jul 16, 2020 at 9:53 AM Tristan Williams <ho...@tj...> wrote: > >> Hello Mark, >> >> Brilliant! There are AmForth words there I hadn't realised it had. >> >> Best wishes, >> Tristan >> >> On 16Jul20 00:49, Mark Roth wrote: >> > It's almost there at least as a page that can temporarily replace the >> > temporary v5.5 one. This is generated from the current svn sources and >> > consists of the avr8 and common words directories. I cleaned up as many >> of >> > the files that I could (and those will for sure need some Forth eyes on >> > them) by taking info from older versions when the comment block was >> > missing. The entire thing is generated by copying the avr8/words and >> > common/words into a temp directory then running the refcard python file >> > against that. You can take a look at it here. >> > http://ipreferpi.eu/htdocs/TG/refcard.html >> > >> > On Mon, Jul 13, 2020 at 10:19 PM Mark Roth <cab...@gm...> >> wrote: >> > >> > > I see there are a few duplicates but I'm not really sure why. Like >> > > RECOGNIZE from recognize.asm. It must have something to do with the >> way the >> > > msp430 header is formatted that is different from other ones since it >> isn't >> > > all of them. I'm sure it is in that voodoo of slashes somewhere... >> > > >> > > all the best, >> > > Mark >> > > >> > >> >> > >> CLIPPED >> > >> > _______________________________________________ >> > Amforth-devel mailing list for http://amforth.sf.net/ >> > Amf...@li... >> > https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > >> >> >> _______________________________________________ >> Amforth-devel mailing list for http://amforth.sf.net/ >> Amf...@li... >> https://lists.sourceforge.net/lists/listinfo/amforth-devel >> > |
From: Mark R. <cab...@gm...> - 2020-07-16 08:03:07
|
Of those you see in the list, there are about 20 .asm files that aren't included in even the 8k core build. I jammed about a dozen of them into my appl_core dictionary include file just to try and fill it up. Plus of course the hardware drivers that wouldn't be included anyhow if you don't need them. I should probably go through my notes and start making patches for all the files I changed so they can be vetted. I'm sure I made some errors (or just didn't know from looking at the comments) that would need to be sorted out. :) On Thu, Jul 16, 2020 at 9:53 AM Tristan Williams <ho...@tj...> wrote: > Hello Mark, > > Brilliant! There are AmForth words there I hadn't realised it had. > > Best wishes, > Tristan > > On 16Jul20 00:49, Mark Roth wrote: > > It's almost there at least as a page that can temporarily replace the > > temporary v5.5 one. This is generated from the current svn sources and > > consists of the avr8 and common words directories. I cleaned up as many > of > > the files that I could (and those will for sure need some Forth eyes on > > them) by taking info from older versions when the comment block was > > missing. The entire thing is generated by copying the avr8/words and > > common/words into a temp directory then running the refcard python file > > against that. You can take a look at it here. > > http://ipreferpi.eu/htdocs/TG/refcard.html > > > > On Mon, Jul 13, 2020 at 10:19 PM Mark Roth <cab...@gm...> wrote: > > > > > I see there are a few duplicates but I'm not really sure why. Like > > > RECOGNIZE from recognize.asm. It must have something to do with the > way the > > > msp430 header is formatted that is different from other ones since it > isn't > > > all of them. I'm sure it is in that voodoo of slashes somewhere... > > > > > > all the best, > > > Mark > > > > > >> > > >> CLIPPED > > > > _______________________________________________ > > Amforth-devel mailing list for http://amforth.sf.net/ > > Amf...@li... > > https://lists.sourceforge.net/lists/listinfo/amforth-devel > > > > > _______________________________________________ > Amforth-devel mailing list for http://amforth.sf.net/ > Amf...@li... > https://lists.sourceforge.net/lists/listinfo/amforth-devel > |