Hi Michael,AmForth uses a dictionary to store the words it knows about. When AmForth recognises it has received a word over the serial line it tries to lookup that word in its dictionary. If it finds the word, it executes that word. If it does not, then it reports an error.
In the file marker.frt is the definition for the word marker. This word will create a word that will manipulate the dictionary. See this link below
http://amforth.sourceforge.net/TG/recipes/Forget.htmlYour AmForth system is indeed corrupted (and will need to be re-flashed). Why it has become corrupted needs some more investigation. Perhaps there is a word that marker relies on that is missing from your hex build, perhaps you made a typo when typing in the definition, perhaps you have found a bug[a]. I would
1. Re-flash the board2. Connect over serial, check that word lists the dictionary, define a trivial word e.g. : xx 1 + ; and check that it works and can be listed in the dictionary.
3. Use amforth-shell.py to load avr8/lib/forth2012/core-ext/marker.frt 4. Repeat 2.5. Do the example in http://amforth.sourceforge.net/TG/recipes/Forget.html
Best wishes, Tristan [a] I use marker very frequently on atmega328p but not on the atmega2560 On 2021-05-24 00:02, Michael Picco wrote:
Thank you for that. Reading up on them yields: not found ... the position in the input line indicates the system choked on the word 'words'. words is part of the flashed system. This indicates (to me) that something got corrupted. I can only wonder if memory got overwritten somehow. Is there a setting required prior to flashing that I'm failing to set properly? Thanks in advance! On 5/22/2021 9:51 PM, George Herzog wrote:There are AmForth error codes. Read up on them.On Sun, May 23, 2021, 12:42 Michael Picco <mpi...@placerville.me> wrote:Hello! I seem to have stumbled across an issue.First code I wrote was to blink the LED onboard. This worked just fine. Then I went to add 'marker'. Entered it line-by-line ... got the 'Ok'after each line. After adding the last line (semicolon), the board froze up. Did a warm boot and then executed 'words' to see what was there. It came back with ?? -13 5. What came to mind is perhaps not enough memory is allocated prior to flashing and I'm overwriting something I shouldn't. Any ideas? Kind regards, Michael On 5/21/2021 1:28 AM, tristan wrote:Hi Michael, Apologies. My memory is failing me. The LED is on D13 for both UNO and MEGA, but D13 is mapped to PB5 (PORTB bit 5) on the UNO and PB7 (PORTB bit 7) on the MEGA. Best wishes, Tristan On 2021-05-21 08:54, tristan wrote:Hi Michael,I do not see the word 'marker' defined. Should it have been part ofthe basic system, or do I need to pull it from somewhere?It is not part of the basic system, it is defined in this file. avr8/lib/forth2012/core-ext/marker.frtUsing marker is efficient/good practice/etc. but it is not a necessaryrequirement to do below.Then I'd like to see about doing something real simple, like turning an LED on/off. It's sort of a hardware person's approach to 'HelloWorld!' :)http://amforth.sourceforge.net/TG/recipes/Arduino-HelloWorld.htmlIIRC the MEGA and UNO have the built-in led on the same pin (port bit).The definitions for the chip can be found in this file avr8/devices/atmega2560/atmega2560.frtThese, or extracts from, will need to be loaded into the basic system. So longer term, being able to load forth definition non-interactively from a file is very useful. There are programs in the tools directory- amforth-shell.py being the one I use. Best wishes, Tristan On 2021-05-21 05:25, Michael Picco wrote:Hello, As mentioned earlier, it's now working.I do not see the word 'marker' defined. Should it have been part ofthe basic system, or do I need to pull it from somewhere?Then I'd like to see about doing something real simple, like turning an LED on/off. It's sort of a hardware person's approach to 'HelloWorld!' :) Kind regards, Michael K6MLE On 5/20/2021 12:41 PM, Michael Picco wrote:I should add the following changes to Craig Lindley's write-up: Step 3: Under Win10, the correct file location for avrasm2.exe will be: c:\Program Files(86)\Atmel\Studio\7.0\toolchain\avr8\avrassembler\avrasm2.exeAlso needed in the work directory isatmega256.asm and m2560def.incThe image of the directory structure didn't post to the list, so I'm showing it below (my work directory is called "amforth-ATmega2560-6.9": -- appl -- arm -- avr8 -- common -- doc -- examples -- msp430 -- risc-v -- shared -- tests -- tools -- words atmega256.asm avrasm2.exe device.asm (for the 2560) device.inc (for the 2560) dict_appl.inc dict_appl_core.inc LICENSE.txt m2560def.inc make.bat readme.txt uno.asm Hope this helps! Kind regards, Michael K6MLE On 5/20/2021 11:56 AM, Michael Picco wrote:Hello All! I have finally had success!It turns out that the .eep and .hex files I was flashing into the2560 were corrupted!I followed Craig Lindley's write-up with modifications for the 2560.Changed the make.bat file to read: avrasm2.exe -fI -o atmega2560.hex -e atmega2560.eep -l atmega2560.lst -I g:\amforth-atmega2560\common -I g:\amforth-atmega2560\avr8 -I g:\amforth-atmega2560\avr8\drivers -I include -v0 atmega256.asmThis is the resulting file structure prior to executing make.bat:The fuse setting in Studio 7 were set as follows: E: 0xFF, H: 0xDC, L:0xFF Programmed the fuses; set the new files up in Studio 7 for flash and EEPROM; programmed the .hex and .eep files. Have a nice prompt for "amforth 6.9 ATmega2560 Forthduino" !!! I'm hoping this exercise might help others. Kind regards, Michael K6MLE On 5/18/2021 8:51 AM, tristan wrote:Hello Michael, Getting AmForth up and running from archive hex files on a mega2560 is reasonably straightforward, however, I don't use Microchip Studio version 7 or win10 so I can't help with this tool set. I hope you able to translate the macos/linux to your tools - and if so a write-up would be very welcome! As pointed out you need a programmer (such as usbtiny, usbasp, avrisp2 etc.) and a program to talk to the programmer (such as avrdude).Both atmega2560.hex and atmega2560.eep.hex need to be written tothe mega2560's flash/eeprom. Below are the command lines I use with avrdude avrdude -p m2560 -c usbtiny -U flash:w:atmega2560.hex:i avrdude -p m2560 -c usbtiny -U eeprom:w:atmega2560.eep.hex:iFlashing these file will overwrite any existing bootloader. It is worth considering whether you are able to reverse this should youwish to, before flashing the above files.If your mega2560 is an Arduino style board, and the default fusesunchanged, then IIRC there is no need to reprogram the fuses. Once the files have been flashed, you should be able to connect to the mega2560 over serial using 38400 8N1. I use minicom andamforth-shell.py You will need to identify the name of the serialdevice created by the USB to SERIAL chip on your board/setup to use any serial program. Once connected you have the AmForth interpreter prompt and can interact, compile new words, and generally use the system. However, AmForth is modular and not all functionality is contained in the flashed hex files. For I2C and SPI new words need to be defined. These definitions are already available within the archive, but need to be loaded onto a "new" AmForthsystem. I find amforth-shell.py very helpful for automating thisprocess. The cookbook is a great place to see examples of how things can be done http://amforth.sourceforge.net/TG/Cookbook.html And for I2C, below is very helpful http://amforth.sourceforge.net/TG/recipes/I2C-Generic.html Let us know how you get on. Best wishes, Tristan On 2021-05-18 14:31, BK Navarette wrote:Be careful, the fuse settings particularly the boot size is different for flash forth vs amforth. Brian On 5/18/21 5:30 AM, PETREMANN Marc wrote:Hello, I have not used AmforthBut the installation mechanisms are the same as for FlashForth:https://arduino-forth.com/article/FORTH_FlashForth_installation_installerFlashForthonce FORTH is installed, you must write the programs in FORTH language and have them compile by FORTH on the ARDUINO card. FORTH is an interpreter and a compiler. We communicate with FORTH via terminal software:https://arduino-forth.com/article/FORTH_FlashForth_installation_teraTermUnless I'm mistaken, you need an MKII programmer, because you can only inject a .HEX file through this device. This operation overwrites the original bootloader. BR Le mar. 18 mai 2021 à 06:08, Michael Picco <mpi...@placerville.me> a écrit :Hello, I am attempting to use the mega2560 as a nicely featured development platform for AmForth-6.9. The machine I'm using is a Win10 box, with Microchip Studio version 7 installed. In the zip file, under appl/atmega2561, I notice atmega256.eep.hex and atmega256.hex. The eep.hex file doesn't seem to get recognized by Studio 7. Do I need to rename it to just a ".eep" file?Can I start building the platform by flashing these files intotheboard? If so, what is the process to add functionality (I2C,SPI, etc.)? As a total newbie! If it's necessary to recompile and create new hex files, the process isunclear. Is it spelled out somewhere such that a beginner canfollow some basic steps to make the proper file(s)? It is my understanding that both flash and EEPROM need to be written, along with the fuses, [E:0xFF, H: 0xDC, L:0xFF]. Do I have these correct?Once I get this figured out, I'd like to submit a write-up fornewbies and perhaps draw more users into AmForth. How might I get this posted, when completed? Thank you in advance! Kind regards, Michael _______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel
_______________________________________________ Amforth-devel mailing list for http://amforth.sf.net/ Amforth-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/amforth-devel