0 Members and 2 Guests are viewing this topic.
I have the newer 84 with the slower LCD by the way. I'll see if this fixes it. Although, I would rather the user not need to do this when running axe games.
p_Disp4Lvl: di ld a,$80 out ($10),a ld (OP1),sp ld sp,appbackupscreen - plotSScreen ld e,(plotSScreen-appbackupscreen+12)&$ff ld c,-$0C ex af,af' ld a,%11011011 inc (iy+asm_flag2) jr z,__Disp4Lvlskip add a,a ld hl,(flags+asm_flag2) inc l jr z,__Disp4Lvlskip rlca ld (iy+asm_flag2),-2__Disp4Lvlskip: ld l,plotSScreen&$ff-1 ex af,af'__Disp4Lvlentry: ld a,c add a,$2C ld h,plotSScreen>>8 inc l ld b,64 out ($10),a__Disp4Lvlloop: ld a,(hl) add hl,sp xor (hl) ex af,af' cp e <-- Epic coincidence that e just happened to be between 182 and 219 rra ld d,a ex af,af' and d xor (hl) out ($11),a ld d,(plotSScreen-appbackupscreen+12)>>8 add hl,de djnz __Disp4Lvlloop inc c jr nz,__Disp4Lvlentry__Disp4LvlDone: ld sp,(OP1) ei ret__Disp4LvlEnd:
Hmm, remember when I suggested you could use IX as a pointer to the variables for easier access when doing 8-bit operations? That would be too much of a hassle, we agreed. But what if you moved the variables to the END of savesscreen? Then they would be within the range of the IY register (which points 4 bytes after the end of savesscreen). Just something to consider