83Plus:Hooks:9B80
From WikiTI
Synopsis
Name: Library Hook
Hook Pointer Block Address: 9B80
Hook Enable BCALL: 4F63
Hook Disable BCALL: 4F6C
Hook Call BCALL: 4F5A
Hook Active Flag: 1, (iy + 34h)
This hook is available for apps' internal use and to interface with BASIC programs using the OpenLib and ExecLib functions.
Using the Hook
This hook is never used by the 83+ OS. On the 84+, it is used to implement the OpenLib( / ExecLib functions.
Comments
If you place the following at $4087:
.db 96h, 0E2h .dw 100h, LibHookInfo
and the following anywhere on the first page of your app:
LibHookInfo: .dw 1 .db 2, 0 .dw LibraryHook
a BASIC program (on the 84+) can then call your hook.
- First, the BASIC program calls the OpenLib( function with the name of your app as argument.
- Your app's hook is enabled and bit 4, (iy+3Eh) is set to indicate that ExecLib is enabled.
- When the BASIC program calls ExecLib, your app's hook is called.
Note that OpenLib and ExecLib are only valid in programs, and not in the homescreen entry or in equations.
Credits and Contributions
- Michael Vincent: Analyzing the OpenLib/ExecLib interface on OS 2.21 and above.