TAQOZ Reloaded v2.8 - Writing Inline Assembly Language
Here's my notes on writing TAQOZ words using in-line assembly language at version 14. I'll up-issue as I learn more.
Here's my notes on writing TAQOZ words using in-line assembly language at version 14. I'll up-issue as I learn more.
Comments
Just super Bob. I had a quick look and will have a better read of that later.
I took the time to read the document end to end and I can only repeat what Peter has already said. You must've prepared many, many quality docs in your career, obviously.
Thanks both, I expect there's a lot that can be added, there's plenty more features in TIA. I fixed some mistakes so worth downloading before rereading.
Very satisfying when a word assembles with no stack mismatch and then after a few more tweeks actually works. The reset button gets a lot of use as does the dump
and stack display commands! I like the conventional syntax in TIA, so many forth assemblers use RPN which makes adopting code from other assemblers a real chore. Plus I found writing assembler in tiny chunks and testing the word out interactively in TAQOZ is fun, you get constantly rewarded with another working word you can trust. Deserves wider recognition as a tool for seriously high speed applications with fewer bugs.
Deserves wider recognition as a tool for seriously high speed applications with fewer bugs.
You nailed it !
.
That's why Peter is trying to promote the TAQOZ in so many ways but, unfortunately, the majority of folks are stuck with the conventional tools and methods (for various reasons which we know all too well). The hardest part is to start with something new but once you see how productive one can be with TAQOZ it's even harder to stop using it, especially that it includes interactive assembler too. And many more
Hi Bob, this document is really very helpful! Great!
Perhaps you might add some lines about LOADMOD and COGMOD?
LOADMOD ( startadr number_of_longs -- ) will copy PASM code from hub into cog ram starting at fixed address.
COGMOD will execute any code, that has been loaded before.
The result is: 0 25
It took me some time to find #\@COGMOD as a way to implement the loop....
@Christof Eb.
That looks useful, I will add that to both the inline code and glossary documents, this was new information to me,
regards, Bob
Hi can someone help, please? -solved
I have now struggled for half a day to assemble some code with Taqoz 2.8 inline assembler and forward label reference for half a day, and cannot get it running.
The version with the { } comment works. It fills a buffer with Sync3 adc data. The code within the comment shall bring a positive edge trigger.
But if I delete the { }, jmp #la2 should skip the code until la2. Instead it does not work any more.
So how can I do a forward jump?
(setse4+waitse4 did not work too.)
Many thanks!
**Solved: I finally found the remark in PASM.fth, that forward references do only work for djnz!
**
@bob_g4bby
1. I think it should be helpful, if you could add some lines into your description about labels. While jumps backward do make no problems, forward jumps are only supported for djnz. jmp is not supprted. It took me several hours to find this "feature" because sometimes the forward jump seemed to work.
At the moment the best workaround seems to be to use the skip instruction. It needs one bit set for every instruction, that needs to be skipped.
I saw your article and thought the same thing - I will add the information on jumps.
Hi Bob,
although I tried, I could not get
....
ASM:
....
FORTH:
....
work. This switch back to Forth seems not to work?
Perhaps you could check this and put it into your paper?
Hi Bob,
in your passage "Taqoz temporary registers", it would be good to clarify, that some of these register names refer to the same cell.
xx, yy=r0, zz=r1, r2, r3, r4, acc=ac
I had some strange things going on, when I used both r1 and zz, thinking they would be independent...