0 Members and 5 Guests are viewing this topic.
p_NewVar: .db __NewVarEnd-1-$ 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:
Apparently the bad flash error is still there. I upgraded straight from 053 to 101 (no, I didn't use 100 at all and yes, it's actually 101) and it's happening.
I know I know, I've been meaning to update but I've been so busy IRL, as soon as I have free time again, I'm going to fix all the bugs. Sorry about that.
p_GetArc: .db __GetArcEnd-1-$ push de MOV9TOOP1() B_CALL(_ChkFindSym) jr c,__GetArcFail B_CALL(_IsFixedName) ld hl,9 jr z,__GetArcName__GetArcStatic: ld l,12 and %00011111 jr z,__GetArcDone cp l jr z,__GetArcDone ld l,14 jr __GetArcDone__GetArcName: add hl,de B_CALL(_LoadDEIndPaged) ld d,0 inc e inc e__GetArcDone: add hl,de ex de,hl pop hl ld (hl),e inc hl ld (hl),d inc hl ld (hl),b ex de,hl ret__GetArcFail: ld hl,0 pop de ret__GetArcEnd:
p_GetArc: .db __GetArcEnd-1-$ push de MOV9TOOP1() B_CALL(_ChkFindSym) jr c,__GetArcFail dec b inc b jr z,__GetArcFail B_CALL(_IsFixedName) ld hl,9 jr z,__GetArcName__GetArcStatic: ld l,12 and %00011111 jr z,__GetArcDone cp l jr z,__GetArcDone ld l,14 jr __GetArcDone__GetArcName: add hl,de bit 7,h jr z,$+7 res 7,h set 6,h inc b B_CALL(_LoadDEIndPaged) ld d,0 inc e inc e__GetArcDone: add hl,de ex de,hl pop hl ld (hl),e inc hl ld (hl),d inc hl ld (hl),b ex de,hl ret__GetArcFail: ld hl,0 pop de ret__GetArcEnd:
getKeyr has a slight problem, not sure whether or not it's worth fixing. The bit that is set to prevent 2nd + ON from turning off the calculator is still set when the program exits. If the program is simply run from the homescreen, when it returns, 2nd + ON does nothing. Although this effect can be reversed by doing something like opening a menu, it's still a slight problem.
The increment/decrement operators (++/--) seem to be "invalid tokens", if used with memory locations/curly brackets (haven't tested variables).
I just tried it myself, you are right. It only seems to occur with one-byte constant pointers, though.