yes, sorry my reply wasn't clear enough - my point was that to save the bank in a variable (current_bank in my source) and use that later in get_bank::
I think it's expected for set_bank to do not change any Z80 register. Did you try writing set_bank as: set_bank:: ld (#_current_bank),a ret
I think this has broken my use-case. Nothing tragic, I can probably fix that -- but I was wondering if there's some command line option to ignore this mismatch check instead?
There is an earlier report about this, but from that one, it seemed that only NMOS Z80 were affected: [feature-requests:#476]. Yes, back then I had wrong info about this. Anyway I remember reading on some MSX forum of a possible solution that involved zeroing and then checking the top of the stack to see if an interrupt happened while saving the IF flag status. Not sure I can find that topic again...
.allow_undocumented is broken until Commit: [r13287] (just a note to myself for later)
.allow_undocumented is broken until Commit: [r13296] (just a note to myself for later)
OK so I see I should be able to use the .allow_undocumented instruction and then assemble ld a,iyh and/or ld ixl,a? I will try. AFAIK on some early NMOS Z80, some of the undocumented instructions don't work Not these ones, AFAIK...
What would be the correct equivalent of these instructions?