Difference between revisions of "83Plus:Hooks:9B8C"

From WikiTI
Jump to: navigation, search
m (The Homescreen Hook was never called the Font Hook...that is its own hook, and the localize hook may have been called that)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
 
[[Category:83Plus:Hooks:By_Name|Homescreen Hook]] [[Category:83Plus:Hooks:By_Address|9B8C - Homescreen Hook]]
 
[[Category:83Plus:Hooks:By_Name|Homescreen Hook]] [[Category:83Plus:Hooks:By_Address|9B8C - Homescreen Hook]]
 
== Synopsis ==
 
== Synopsis ==
'''Name:''' Homescreen
+
'''Official Name:''' Homescreen Hook
  
 
'''Hook Pointer Block Address:''' [[83Plus:RAM:9B8C|9B8C]]
 
'''Hook Pointer Block Address:''' [[83Plus:RAM:9B8C|9B8C]]

Latest revision as of 17:33, 4 October 2008

Synopsis

Official Name: Homescreen Hook

Hook Pointer Block Address: 9B8C

Hook Enable BCALL: 4FAB

Hook Disable BCALL: 4FAE

Hook Call BCALL: (none known)

Hook Active Flag: 4, (iy + 34h)

This hook is called when various events occur on the homescreen.

Using the Hook

These different values, passed in A, determine what the hook should do.

  • 0: The calculator is displaying a result.
    • OP1 = the value to display
    • You can change the value in OP1 to display something different, which will not affect the value stored to Ans.
    • If you want to display something wider than the screen, you must also write the formatted string to fmtString.
    • Return NZ and TIOS will not display anything.
  • 1: A key was pressed at the homescreen.
    • B = keycode
    • Change B to change the key that appears to be pressed.
    • Return NZ to ignore the keypress.
  • 2: An expression was entered to be evaluated.
    • OP1 contains prgm!.
    • To retreive the expression to be evaluated use prgm#.
    • Return NZ to cancel running the program.
  • 3: Changing context to the homescreen.
    • B = previous context value
    • You should always return Z in this case.

Example

The following code will display a random number as the result of any calculation.

HomescreenHook:
        .db 83h             ; Required for all hooks
        or a                ; are we in condition 0 (display value?)
        jr nz,ReturnZ
        B_CALL Random      ; change our output value to a random #
ReturnZ:
        cp a                ; set zero condition
        ret

Credits and Contributions

  • Michael Vincent: Analysis and writing the most amazingly cool homescreen hacks I've seen yet.