I think I found another! inData(t ,data) throws error wrong number of args. The token sign followed by a space is what breaks it. Any other character than a space compiles without error. It appears to break when "t " is used in any argument for a command but the last. Line(t ,5,5,5) errors while Line(5,5,5,t ) compiles fine.
I don't know if this counts but the memory locations for the parametric tokens differ form Axe to Axe.inc.
Edit: Found another, this time in 1.3.0 downloaded from about a year ago. Subtraction with both of the arguments variables in memory brackets cause an incorrect answer. For example: :L1->A :Disp {A}-{A} >Dec Gives an incorrect answer, but :Disp {L1}-{L1} >dec is correct. :{A}-{L1} gives the correct answer.
So, I've been thinking. About Axe. I have a couple ideas on changes. 1. Push over into a 3rd app page. Since you are optimizing heavily and can barely fit memkit in, it seems inevitable that the parser will push over into the 3rd page. It seems like a matter of time, and 1.3.0 would be a good time to implement it. This would allow more room for new features and possibly the implementation of other axioms. 2. Add a way for axioms to be implemented in the parser. Perhaps a series of questions or some kind of application process would work.
Ill try that... I've had the calc for 3 years. No hope of returning it. Edit: which one? I've already used ON+mode to clear flash.
Update: Fixed it! It turns out that instead of sending 2.55MP I was actually sending 2.22. No idea where that came from. It worked fine with 2.55. I have a copy of 2.22 if anyone wants it. (PM me) Thanks for all your help!
I have been working on an Axiom that emulates the assembly stack (letting the user pop and push 2 byte variables) but it doesn't seem to work. I've looked it over many times and can't seem to figure out what's wrong. (Y6t acts as (sp)) The command's arguments need a location (ex. Pop (angle)A). Is there a way to have the angle sign inserted automatically?
Thanks for any help! Edit: I fixed it. The value of the tokens in the Inc were different than the calc`s...
Is there any way to automatically insert the location sign to an argument in an axiom. Right now my commands need to be called: COMMAND(oVAR), But I would like to just call them :COMMAND(VAR) I assume this is possible because commands like the for loop uses a variable instead of a location.
Awesome, this would be useful (I was making an on-calc version of the Axe command list) if I hadn't broke my calc. Here is what I have done: After a crash I decided to reinstall my 84's OS since it wouldn't get past the ram cleared screen. Now it will install the OS but fail the validation after 3 seconds and ask for it to be reinstalled again. I've tried XXX times... I have unsigned installed, and can't get past the "Waiting... Please install operating system now."
I have used the mode key on the install screen to erase all flash - many times. I have tried reinstalling ti connect. I have replaced all the batteries. (including the backup) And each time it does exactly the same thing: Successfully transfer the os, validate, then error and go back to waiting for an OS. Any suggestions? (it has been a day now and no luck)
Thanks! Is there any way to combine two files that fit in ram individually, but together can't? I have 2 very large text files, and can't find a way to combine them.
thanks! Again with the command list thing... I don't actually know what SBC does... I'm just using the 83plus in 28 days to learn. Is there any better way?
What's the best way to store data in an axiom? I don't want to use free ram... Is there a way to include data in an axiom? My attempts so far have been unsuccessful. Do I need to use relative offsets?
You're not assembling that in eZ80 mode, are you? Because I think the seemingly cryptic "Undocumented" error message actually means it encountered an undocumented instruction in the Axiom, which Axe considers an error. The ld de,(hl) instruction you've used a couple of times was added for the eZ80 and is undocumented (does nothing, really) on the z80. If assembling in z80 mode, this instruction should have failed to assemble.
Thanks I probably never would have found that! would the replacement be: ld d,(hl) inc hl ld e,(hl) dec hl
I't trying to write a simple axiom that functions in a similar way to the pop and push instructions in SPASM. Its arguments will be Pop(<start of stack>,<pointer to var location>) and example would be Pop(L1,oA) (the o is the angle character) Push has the same arguments. The structure will be: first 2 bytes: current end 3rd and 4th: 1st var 5th and 6th 2nd var.... and so on. I'm having trouble getting the code to work, as Axe throws error:undocumented Here is my asm code:
.dw PushEnd .db %00011111 .dw tFMin .db %00000000 .db 2 .org 0 ld de,(hl) pop hl push de inc (hl) inc (hl) ld de,(hl) add hl,de pop de ld (hl),d inc hl ld (hl),e ret ; {ctr}r,{var1}r,{var2}r,{var3}r PushEnd:
.dw PopEnd .db %00011111 .dw tFMax .db %00000000 .db 2 .org 0 ld de,hl pop hl push de dec (hl) dec (hl) ld de,(hl) add hl,de pop de ld a,h ld (de),a inc de ld a,l ld (de),a ret PopEnd:
Yes... I needed to indent... *rage* no one can force me to organize my code! I must write code in wall-of-text format! That is the only way! *snif...* E37 goes to hide behind his wall-of-text Axe programs...
As I'm writing some test programs I found an error I can't figure out how to fix. I am using SPASM-ng and when trying to compile it errors saying "unregistered opticode hl" I am using it as "pop hl" Am I missing something? It may just be the includes file, as I have already had to change bcall to b_call in the includes file.
The axiom readme says that the last argument is in hl. After that they are in the stack in descending order. That means if hl holds the nth argument, after pop-ing to hl, hl would hold the n-1th argument. Right?
Is there any way to compare 2 two byte numbers (without comparing each byte separately) My idea was to subtract them, but it doesn't seem to work...