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