whartung wrote:
The problem with Forth assemblers isn't necessarily the syntax (as off-putting as it may be to some), but the fact that it's in Forth in the first place.
If it were just a stand alone program that takes a text file and spits out an assembled binary, then it's simply a different syntax rather than an entirely different tool chain.
and, yes, you should include a copy of the license in the ZIP file.
Ah but that's not the case with the metacompiler's assembler ( which is also postfix ). When I was developing my metacompiler, I added a feature that I never actually needed ( it was easy to add ). The metacompiler has a word
SUB which is used to write subroutines a code word might need.
SUB creates a label ( on the host, of course ) but does not create any header or code field on the target. It then switches to the metacompiler assembler vocabulary. Here is a short test routine I wrote last night.
Code:
HEX
C000 BOTTOM!
SUB FLASHER
0 # LDA, TAX, TAY,
BEGIN,
D020 STA, CLC, 1 # ADC,
CS-DUP 0= UNTIL,
INY,
CS-DUP 0= UNTIL,
INX,
0= UNTIL,
RTS,
END-CODE
I know it's not much, even for an example but, it shows that it is possible to use the metacompiler's assembler to write stand alone programs.
This short piece was saved with the metacompiler word
TSAVE and loads at address $C000 or decimal 49152 ( an address familiar to Commodore 64 users who also programmed their machines ). The screen shot shows the short BASIC program that uses this routine. The screen shot was taken during the test. Yes it completed successfully.
Attachment:
meta assembler demo.png [ 18.34 KiB | Viewed 10440 times ]
This has given me food for though about the metacompiler. Currently, the source is compiled with
MLOAD or
MTHRU but, writing
MINCLUDE, a metacompiler version of
INCLUDE will be easy to write but, there may be a better way. I'll have to go through the metacompiler code and clean it up and maybe rethink some of the metacompiler design.
Cheers,
Jim
P.S.
BOTTOM! could be renamed
ORIGIN.