/// <summary> /// Returns the master stack pointer. /// </summary> ULO cpuGetMspAutoMap(void) { if (cpuGetFlagSupervisor() && cpuGetFlagMaster()) { return cpuGetAReg(7); } return cpuGetMspDirect(); }
ULO cpuActivateSSP(void) { ULO currentSP = cpuGetAReg(7); // check supervisor bit number (bit 13) within the system byte of the status register if (!cpuGetFlagSupervisor()) { // we are in user mode, thus save user stack pointer (USP) cpuSetUspDirect(currentSP); currentSP = cpuGetSspDirect(); if (cpuGetModelMajor() >= 2) { if (cpuGetFlagMaster()) { currentSP = cpuGetMspDirect(); } } cpuSetAReg(7, currentSP); } return currentSP; }