Skip to navigation

Elite on the BBC Micro

Utility routines: NMIRELEASE [Master version]

Name: NMIRELEASE [Show more] Type: Subroutine Category: Utility routines Summary: Release the NMI workspace (&00A0 to &00A7)
Context: See this subroutine in context in the source code References: This subroutine is called as follows: * CATS calls NMIRELEASE * DELT calls NMIRELEASE * GTDIR calls NMIRELEASE * LOAD calls NMIRELEASE * SAVE calls NMIRELEASE
IF _COMPACT .NMIRELEASE JSR SWAPZP+3 \ Call SWAPZP+3 to restore the top part of zero page, \ but without first claiming the NMI sprkspace (as it's \ already been claimed by this point) LDA #143 \ Call OSBYTE 143 to issue a paged ROM service call of LDX #&B \ type &B with Y set to the previous NMI owner's ID. LDY NMI \ This releases the NMI workspace back to the original JMP OSBYTE \ owner, from whom we claimed the workspace in the \ NMICLAIM routine, and returns from the subroutine \ using a tail call ENDIF