From WikiTI
Jump to: navigation, search


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.


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

        .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 #
        cp a                ; set zero condition

Credits and Contributions

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