Difference between revisions of "83Plus:BCALLs:44F2"

From WikiTI
Jump to: navigation, search
 
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
[[Category:83Plus:BCALLs:By Name|OffPageJump]] [[Category:83Plus:BCALLs:By Address|44F2 - OffPageJump]]
 
[[Category:83Plus:BCALLs:By Name|OffPageJump]] [[Category:83Plus:BCALLs:By Address|44F2 - OffPageJump]]
 +
{{missinfo|Destroys}}
 
== Synopsis ==
 
== Synopsis ==
 
'''Unofficial Name:''' OffPageJump
 
'''Unofficial Name:''' OffPageJump
Line 21: Line 22:
 
   .DB bPage
 
   .DB bPage
 
Do not B_CALL this entry point, only B_JUMP. Unlike other B_JUMPs, however, this one does return.
 
Do not B_CALL this entry point, only B_JUMP. Unlike other B_JUMPs, however, this one does return.
It could have uses for multipage applications, I guess. TI-Navigator uses it like this.
+
It could have uses for multipage applications, I guess. Push a return address before the below code if you want to regain control. TI-Navigator uses it like this.
  
 
== Example ==
 
== Example ==
Jump to ClrLCDFull and end execution (on OS 1.12):
+
Jump to ClrLCDFull and end execution (on OS 1.12 from a RAM program):
  
 
   ld hl,dataPtr
 
   ld hl,dataPtr
 +
  push hl
 
   B_JUMP OffPageJump
 
   B_JUMP OffPageJump
 
  dataPtr:
 
  dataPtr:
 
   .dw 5A71h ;these are specific to OS 1.12
 
   .dw 5A71h ;these are specific to OS 1.12
 
   .db 01h
 
   .db 01h

Latest revision as of 19:28, 5 February 2008

This article is missing some information (namely Destroys). You can help WikiTI by filling in the missing information.


Synopsis

Unofficial Name: OffPageJump

BCALL Address: 44F2

Jumps to a specified address on a specified page.

Inputs

  • Push pointer to table entry before calling

Outputs

  • None

Destroys

  • Unknown

Comments

Push the address of a B_CALL table entry before B_JUMPing to this entry point. Such an entry looks like this:

 .DW wAddress
 .DB bPage

Do not B_CALL this entry point, only B_JUMP. Unlike other B_JUMPs, however, this one does return. It could have uses for multipage applications, I guess. Push a return address before the below code if you want to regain control. TI-Navigator uses it like this.

Example

Jump to ClrLCDFull and end execution (on OS 1.12 from a RAM program):

 ld hl,dataPtr
 push hl
 B_JUMP OffPageJump
dataPtr:
 .dw 5A71h ;these are specific to OS 1.12
 .db 01h