Quote:
Originally Posted by dissident
I analyzed the functions Forbid() and Permit() to check, if there are differences between Kick1.3 and 3.1:
Code:
btst #5,(a7) ;Check stack frame format: Format$2 or Format $3 ?
|
Just for clearance (in case anyone may need it and looks seriously at the code comment). The btst #5 instruction above
does not check the stack frame format. It checks if the code (executed through Supervisor call) shall return to supervisor mode or to user mode.
The former is the case if Permit() was called in supervisor. In that case no rescheduling will take place as it would have very fatal consequences. On the other hand, if Permit() was called in user mode (bit 5 of upper byte of SR - supervisor, is clear) then it will trigger scheduler if TDNestCnt < 0 and IDNestCnt < 0 and ATTN_Resched (bit 7) flag in SysFlags is set.