We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

TCALL (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(→‎External Links: added forum post)
(reworded to clarify)
Line 6: Line 6:
|'''Length'''
|'''Length'''
|'''Speed'''
|'''Speed'''
|'''Target Address'''
|'''Vector Address'''
|+
|+
|[[Implied]] (type 3)
|[[Implied]] (type 3)
Line 127: Line 127:
|}
|}


'''TCALL''' (Table CALl) is an [[SPC700]] instruction that calls a subroutine in the [[uppermost page]].  The low byte of the effective address which is called is a function of the high nibble of the opcode, equal to $DE - nibble*2.  The high byte of the effective address is always $FF.
'''TCALL''' (Table CALl) is an [[SPC700]] instruction that calls a subroutine whose address is stored in the [[uppermost page]].  The low byte of the address of the vector (pointer to subroutine) is a function of the high nybble of the opcode, equal to $DE - n*2.  The high byte of the vector address is always $FF.


No flags are affected.
No flags are affected.
Line 137: Line 137:
</pre>
</pre>


where n is the vector call number, a decimal integer from 0 to 15, which becomes the high nibble of the opcode.
where n is the vector call number, a decimal integer from 0 to 15, which becomes the high nybble of the opcode.


=== See Also ===
=== See Also ===

Revision as of 05:23, 8 July 2024

Basic Info
Addressing Mode Opcode Length Speed Vector Address
Implied (type 3) 01 1 byte 8 cycles $FFDE
Implied (type 3) 11 1 byte 8 cycles $FFDC
Implied (type 3) 21 1 byte 8 cycles $FFDA
Implied (type 3) 31 1 byte 8 cycles $FFD8
Implied (type 3) 41 1 byte 8 cycles $FFD6
Implied (type 3) 51 1 byte 8 cycles $FFD4
Implied (type 3) 61 1 byte 8 cycles $FFD2
Implied (type 3) 71 1 byte 8 cycles $FFD0
Implied (type 3) 81 1 byte 8 cycles $FFCE
Implied (type 3) 91 1 byte 8 cycles $FFCC
Implied (type 3) A1 1 byte 8 cycles $FFCA
Implied (type 3) B1 1 byte 8 cycles $FFC8
Implied (type 3) C1 1 byte 8 cycles $FFC6
Implied (type 3) D1 1 byte 8 cycles $FFC4
Implied (type 3) E1 1 byte 8 cycles $FFC2
Implied (type 3) F1 1 byte 8 cycles $FFC0
Flags Affected
N V P B H I Z C
. . . . . . . .

TCALL (Table CALl) is an SPC700 instruction that calls a subroutine whose address is stored in the uppermost page. The low byte of the address of the vector (pointer to subroutine) is a function of the high nybble of the opcode, equal to $DE - n*2. The high byte of the vector address is always $FF.

No flags are affected.

Syntax

TCALL n

where n is the vector call number, a decimal integer from 0 to 15, which becomes the high nybble of the opcode.

See Also

External Links