Texas Instruments Plugins

bcall/bjump

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:

CallGenerated CodeSize
bcall(target)rst $28 \ .dw target3
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 target5
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

See Also