0 Members and 2 Guests are viewing this topic.
I use the on key frequently, but that seems to break the equation evaluator since it counts as basic. Is there any way to clear the ON break error? (I already used runprgm's error handler to no avail.)
What are the arguments for the Axe compile B_CALL? Is it the program name in op1?
##################### api_CompileOP1 #####################Inputs: OP1 = Name of program to compile a = Compile Mode bit 0-2: 0 = No shell 1 = Ion 2 = MirageOS 3 = DoorsCS 4 = Application bit 3 0 = Regular compile 1 = Zoom compileOutputs: noneCompiles the program and then returns
Is there anyway to tell for sure if you have memory corruption? The program behaves normally except when it is asked to create a new program. (It behaves weirdly like saying the prgm took up x bytes but displaying many more in the editor.)
In order to find custom tokens in axioms the program reads the compiled axiom. Is there a better way to do that?
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...
#include "includes\ti83plus.inc"#include "includes\Axe.inc"#include "includes\tokenhook.inc" .dw $C0DE .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}rPushEnd: .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 retPopEnd: .dw 0 .dw hFMin .db 4 .db "Pop(" .dw hFMax .db 5 .db "Push("
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.
would the replacement be:Code: [Select]ld d,(hl)inc hlld e,(hl)dec hl
ld d,(hl)inc hlld e,(hl)dec hl
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?
;____FIELD 4____;Description: Command type;Size: 1 byte;Bits: bit 0 ==> Subroutine instead of inline routine; bit 1 ==> Command requires the r modifier; bit 2 ==> Command requires the rr modifier; bit 3 ==> Additional argument comes before a store token; bit 4 ==> Puts the data pointer in hl (disables auto-replacements)
;____FIELD 3____;Description: Token to match;Size: 2 bytes;Explanation: If its only a 1 byte token, make the second byte 0.; If its a 2 byte token, the prefix token should come first.; Leave $0000 if this can only be called from other commands.