Hi, I tried adding machine code to call PK$skip to go forward a byte, then back one byte in a second attempt. I did this immediately after calling PK$save and before the RTS that follows it. The same byte was written as 'FF', no change under any circumstances.
If you can make a disassembly of the PK$save routine, please can I have it? I don't know how a pack is deselected, but even just knowing when it happens might help. I'd hoped it might happen on RTS to OPL, or even only when something later compels it to change to another pack, and that an immediate call to PK$skip after PK$save would not cause such deselection. The documentation seems to imply that it could not, in which case the PK$save service is directly implicated in this, even though the difference in outcome between Jape and a hardware Organiser is caused when using the exact same code.
The deeper I look at this, the weirder it gets. There is clearly some consistent behaviour that has so far resisted all reductionist attempts to get at it.
Jaap has gone silent after some discussion of this, so either he's busy with other stuff, or he's equally perplexed and isn't going to say anything until he's beaten it.