Hello Mattias,

Matthias Trute <mtr...@web.de> writes:

> Hello Enoch,
>
>> Apologies for my insistence but couldn't you achieve the same objective
>> of packing as many words as possible into the core via a macro call at
>> each word that examines the current "pc" against "AMFORTH_RO_SEG" and
>> switches "pc" down when we near the "FLASHEND".  This macro is quite
>> trivial:
>
> I've had something similiar in the very first versions (not published).
> The major challange was to get the size of the generated code correctly
> predicted since
>
>> 
>> .equ PACKMAX 100  ;word size limit (arbitrary number for now)
>
> is ugly. It is no doubt large enough to give enough room but ...
>
>> In short, I sugget to replace your static loading method (automatic 2k,
>> 4k, 8k selection acc to the architecture) with a dynamic one. 

To overcome my NRWW overflow that is caused by BOOFA's 512W need I added
the following macro call before each core_8k.inc .include line:

; include as much as possible in the core       
.macro icore
.if (pc > AMFORTH_RO_SEG)
   .if (pc > FLASHEND - 64)
      .org DPSTART
  .endif
.endif
.endm

While I managed to build (after dict_appl.inc duplicate entries removal
pain) I experienced serious compiler hanging. For lack of time I had to
Stash... That's a word of caution regarding this reallocation of the asm
code reliability... Ignore at your peril.

> Would be nice, indeed. Maybe a macro at the top of each word
> signalling the generated code size to automatically switch
> to the RWW section. Another rich source for errors if not maintained....
> Or a 2nd pass to analyze the map files to generate a optimally layouted
> dict-fileset. Assemblers are sooo stupid nowadays...

Yes, if someone has the spare time to convert AmForth to GNU binutils
avr-as / avr-ld that would nice...

Regards, Enoch.


------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees
_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
Amforth-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to