0 Members and 2 Guests are viewing this topic.
Data(0,0,0,0,0,0,0,0,0,......)->AGetCalc("appvMTEMP",)->BCopy(A,B,48
I know exactly what is causing that error. It is as runner said, the peephole optimizer. There is currently a bug where Axe confuses offsets with constants and is turning your code into exactly this:Code: [Select]Data(0,0,0,0,0,0,0,0,0,......)->AGetCalc("appvMTEMP",)->BCopy(A,B,48The current offset in the code is 48 and you were using 48 at the same time to specify the size. It also happens to be in a pattern that normally peephole optimizes. So now its attempting to create an appvar with a size equal to the pointer which is a number around $9E00 which is over 40,000 bytes! You can fix this temporarily as Runer said by using zoom compile or adding one more zero to your data. Adding more code to the end wouldn't fix anything because there aren't any known bugs with ending code changing behavior to my knowledge.
ld hl,Data000 ld (axv_A),hl ld hl,Data001 push hl ld hl,48 ;I'm still here call p_NewVar ld (axv_B),hl ld hl,(axv_A) push hl ld hl,(axv_B) push hl ld hl,48 pop de ;Note the abrupt endp_NewVar: B_CALL(_EnoughMem) pop hl ex (sp),hl jr c,__NewVarFail push de push hl MOV9TOOP1() B_CALL(_ChkFindSym) jr c,__NewVarSkip B_CALL(_DelVarArc)__NewVarSkip: pop hl ld a,(hl) MOV9TOOP1() pop hl push af B_CALL(_CreateVar) pop af ex de,hl and %00011111 ret z cp CplxObj ret z inc hl inc hl ret__NewVarFail: ld hl,0 ret__NewVarEnd:Data000: .block 48Data001: .db AppVarObj,"MTEMP",0
0->IFor(I,1,8)rand^16->{I+L1}End0->IFor(I,1,8)Output({I+L1},I,"*")EndPause 5000
For(I,1,8)rand^16→{I-1+L₁}EndFor(I,1,8)Output({I-1+L₁},I-1,"∗")EndPause 5000