disassembly

package
v0.24.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2023 License: GPL-3.0, GPL-3.0 Imports: 5 Imported by: 0

Documentation

Overview

Package disassembly facilitates the disassembly of any coprocessor program in compatible ROM.

Should not be confused with the disassembly package in the project root, which handles disassembly of the 6507 program. Also not to be confused with the SourceDisasm type in the coprocessor.developer package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CartCoProcDisassembly added in v0.20.0

type CartCoProcDisassembly interface {
	GetCoProc() mapper.CartCoProc
}

CartCoProcDisassembly defines the interface to the cartridge required by the coprocessor disassembly pacakge

type DisasmEntries

type DisasmEntries struct {
	Enabled bool

	Entries map[string]mapper.CartCoProcDisasmEntry
	Keys    []string // sorted keys into the disasm map

	LastExecution        []mapper.CartCoProcDisasmEntry
	LastExecutionSummary mapper.CartCoProcDisasmSummary

	LastStart coords.TelevisionCoords
}

DisasmEntries contains all the current information about the coprocessor disassembly, including whether disassembly is currently enabled.

type Disassembly

type Disassembly struct {
	// contains filtered or unexported fields
}

Disassembly is used to handle the disassembly of instructions from an attached cartridge that contains a coprocessor.

func NewDisassembly

func NewDisassembly(tv TV) Disassembly

NewDisassembly returns a new Coprocessor instance if cartridge implements the coprocessor bus.

func (*Disassembly) AttachCartridge added in v0.20.0

func (dsm *Disassembly) AttachCartridge(cart CartCoProcDisassembly)

func (*Disassembly) BorrowDisassembly

func (dsm *Disassembly) BorrowDisassembly(f func(*DisasmEntries))

BorrowDisasm will lock the DisasmEntries structure for the durction of the supplied function, which will be executed with the disasm structure as an argument.

Should not be called from the emulation goroutine.

func (*Disassembly) Enable

func (dsm *Disassembly) Enable(enable bool)

Enable or disable coprocessor disassembly. We retain the disassembly (including last execution) already gathered but the LastExecution field is cleared on disable. The general disassembly is maintained.

func (*Disassembly) End

func (dsm *Disassembly) End(summary mapper.CartCoProcDisasmSummary)

End implements the CartCoProcDisassembler interface.

func (*Disassembly) Inhibit added in v0.19.3

func (dsm *Disassembly) Inhibit(inhibit bool)

Inhibit should be used to temporarily disable disassembly functionality. IsEnabled() will still return true as appropriate regardless of inhibit state.

func (*Disassembly) IsEnabled

func (dsm *Disassembly) IsEnabled() bool

IsEnabled returns true if coprocessor disassembly is currently active.

func (*Disassembly) Start

func (dsm *Disassembly) Start()

Start implements the CartCoProcDisassembler interface.

func (*Disassembly) Step

func (dsm *Disassembly) Step(entry mapper.CartCoProcDisasmEntry)

Step implements the CartCoProcDisassembler interface.

type TV

type TV interface {
	AdjCoords(adj television.Adj, amount int) coords.TelevisionCoords
}

TV defines the interface to the TV required by the coprocessor disassembly package

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL