Calls or jumps to a function, switching page if required on compatible hardware.
Syntax
bcall(_target)
bcallz(_target)
bcallnz(_target)
bcallc(_target)
bcallnc(_target)
bcallpe(_target)
bcallpo(_target)
bcallp(_target)
bcallm(_target)
bjump(_target)
bjumpz(_target)
bjumpnz(_target)
bjumpc(_target)
bjumpnc(_target)
bjumppe(_target)
bjumppo(_target)
bjumpp(_target)
bjumpm(_target)
Remarks
The function generates Z80 code depending on the current output writer.
If the output writer is the ti8x, ti73, ti8xapp or ti73app plugin then the instruction is expanded as follows:
Call | Generated Code | Size |
---|---|---|
bcall(target) | rst $28 \ .dw target | 3 |
bcallz(target) | jr nz,+ \ rst $28 \ .dw target \ + | 5 |
bcallnz(target) | jr z,+ \ rst $28 \ .dw target \ + | 5 |
bcallc(target) | jr nc,+ \ rst $28 \ .dw target \ + | 5 |
bcallnc(target) | jr c,+ \ rst $28 \ .dw target \ + | 5 |
bcallpe(target) | jp po,+ \ rst $28 \ .dw target \ + | 6 |
bcallpo(target) | jp pe,+ \ rst $28 \ .dw target \ + | 6 |
bcallp(target) | jp m,+ \ rst $28 \ .dw target \ + | 6 |
bcallm(target) | jp p,+ \ rst $28 \ .dw target \ + | 6 |
bjump(target) | call $50 \ .dw target | 5 |
bjumpz(target) | jr nz,+ \ call $50 \ .dw target \ + | 7 |
bjumpnz(target) | jr z,+ \ call $50 \ .dw target \ + | 7 |
bjumpc(target) | jr nc,+ \ call $50 \ .dw target \ + | 7 |
bjumpnc(target) | jr c,+ \ call $50 \ .dw target \ + | 7 |
bjumppe(target) | jp po,+ \ call $50 \ .dw target \ + | 8 |
bjumppo(target) | jp pe,+ \ call $50 \ .dw target \ + | 8 |
bjumpp(target) | jp m,+ \ call $50 \ .dw target \ + | 8 |
bjumpm(target) | jp p,+ \ call $50 \ .dw target \ + | 8 |
If another output writer is in use, a regular Z80 call (three bytes) is generated.
Example
/* Set cursor to top-left position. */ xor a ld (curCol),a ld (curRow),a /* Display a string. */ ld hl,String bcall(_putS) /* Wait for a key, then return. */ - bcall(_getCSC) or a jr z,- ret String .byte "Brass 3", 0