Documentation ¶
Overview ¶
Package instructions defines the table of instruction for the 6507. The Definition type is used to summarise the requirements and effects of each entry in the table.
The table is generated programatically by the generator sub-package.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AddressingMode ¶
type AddressingMode int
AddressingMode describes the method data for the instruction should be received
const ( Implied AddressingMode = iota Immediate Relative // relative addressing is used for branch instructions Absolute // abs ZeroPage // zpg Indirect // ind IndexedIndirect // (ind,X) IndirectIndexed // (ind), Y AbsoluteIndexedX // abs,X AbsoluteIndexedY // abs,Y ZeroPageIndexedX // zpg,X ZeroPageIndexedY // zpg,Y )
List of supported addressing modes
type Definition ¶
type Definition struct { OpCode uint8 Mnemonic string Bytes int Cycles int AddressingMode AddressingMode PageSensitive bool Effect EffectCategory }
Definition defines each instruction in the instruction set; one per instruction
func GetDefinitions ¶
func GetDefinitions() ([]*Definition, error)
GetDefinitions returns the table of instruction definitions for the 6507
func (Definition) IsBranch ¶
func (defn Definition) IsBranch() bool
IsBranch returns true if instruction is a branch instruction
func (Definition) String ¶
func (defn Definition) String() string
String returns a single instruction definition as a string.
type EffectCategory ¶
type EffectCategory int
EffectCategory categorises an instruction by the effect it has
const ( Read EffectCategory = iota Write RMW // flow consists of the Branch and JMP instructions. Branch instructions // specifically can be distinguished by the AddressingMode Flow Subroutine Interrupt )
List of effect categories