Difference between revisions of "83Plus:BCALLs:505C"

From WikiTI
Jump to: navigation, search
m (Removed comments from page source)
(corrections and clarifications)
 
Line 2: Line 2:
 
[[Category:83Plus:BCALLs:By Name:Hook|RunCatalog1Hook]]
 
[[Category:83Plus:BCALLs:By Name:Hook|RunCatalog1Hook]]
 
[[Category:83Plus:BCALLs:By Address|505C - RunCatalog1Hook]]
 
[[Category:83Plus:BCALLs:By Address|505C - RunCatalog1Hook]]
{{missinfo|Destroys}}
 
 
== Synopsis ==
 
== Synopsis ==
 
'''Unofficial Name:''' RunCatalog1Hook
 
'''Unofficial Name:''' RunCatalog1Hook
Line 13: Line 12:
  
 
=== Inputs ===
 
=== Inputs ===
The block for the Catalog 1 Hook must be set up correctly.
+
* Register values to pass to the catalog 1 hook.
  
 
=== Outputs ===
 
=== Outputs ===
* HL points to the start of the hook.  
+
* If the hook is invalid, it is disabled, and all registers are preserved except F.
* F is 6A if the hook was not run.  
+
** In this case, the zero flag is cleared if A = 0Ch, set otherwise.
 +
* If the hook is valid, it is called, and all register values upon exiting the hook are preserved and returned.
  
 
=== Destroys ===
 
=== Destroys ===
''Unknown''
+
* F
 +
* As with all hooks, you must assume everything in RAM may be destroyed, but remember that any side effects are intentional.
  
 
== Comments ==
 
== Comments ==
This BCALL is known to be present in OS 1.13, and is undocumented.
+
This routine does not check that the hook is enabled. You must test this yourself, e.g.
 +
 
 +
    bit [[83Plus:Flags:36#Bit_3|catalog1HookActive,(iy+catalog1HookFlag)]]
 +
    jr z,SkipHook
 +
    B_CALL _Catalog1Hook
 +
SkipHook:
  
 
== Credits and Contributions ==
 
== Credits and Contributions ==
 
*Michael Cimino
 
*Michael Cimino

Latest revision as of 13:57, 28 March 2006

Synopsis

Unofficial Name: RunCatalog1Hook

BCALL Address: 505C

Checks the first byte of the block for the Catalog 1 Hook. If the byte is 83, the hook is run; otherwise, the active flag for the hook is set to zero.

Inputs

  • Register values to pass to the catalog 1 hook.

Outputs

  • If the hook is invalid, it is disabled, and all registers are preserved except F.
    • In this case, the zero flag is cleared if A = 0Ch, set otherwise.
  • If the hook is valid, it is called, and all register values upon exiting the hook are preserved and returned.

Destroys

  • F
  • As with all hooks, you must assume everything in RAM may be destroyed, but remember that any side effects are intentional.

Comments

This routine does not check that the hook is enabled. You must test this yourself, e.g.

    bit catalog1HookActive,(iy+catalog1HookFlag)
    jr z,SkipHook
    B_CALL _Catalog1Hook
SkipHook:

Credits and Contributions

  • Michael Cimino