OS_Bix, Bind in extended address for availability
Register parameters
IN: B = 0, bind in physical address in HL BHL = extended pointer to bind into physical address space IY points at OSPUSH frame (preserved by previous OZ call) containing: offset: contents: 10 <RETurn address to caller> 0E <original bank bindings for segment 2 & 3> 0C <HL> 0A <DE> 08 <BC> 06 <AF> 04 <pointer to OZ call address> 02 <original bank bindings for segment 2 & 3> 00 <IY> OUT: DE = old binding of segment 1 in E, and segment 2 in D. B = 0, always, identifying a converted local pointer HL = (possibly modified) address for segment 1. Registers changed after return: A..C..../IXIY same .FB.DEHL/.... different
Notes
Internal operating system usage.
OS_Bix and OS_Box are called from GN_ or OS_ 2 byte calls. Binds in extended or local address, identified by BHL (B=0 local) into segment 1. The (offset) address is automatically forced to segment 1, if necessary. If the address already are in segment 1 or 0, no binding occur (the bindings are still returned in DE). B = 0 always returned to indicate a local address in segment 1 or segment 0.
If request address was in segment 3 then segment 2 was not affected.
Related calls
OS_Box, restore bindings after OS_Bix
OS_Fc, select fast code (fast bank switching)
OS_Mal, allocate memory
OS_Mcl, close memory (free memory pool)
OS_Mfr, free (previously allocated block) memory
OS_Mgb, get current bank binding in segment
OS_Mop, open memory (allocate memory pool)
OS_Mpb, set new bank binding in segment
OZ_Mgb, get current bank binding in segment
OZ_Mpb, set new bank binding in segment