external

package
v0.6.2 Latest Latest
Warning

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

Go to latest
Published: Sep 29, 2025 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var UnrecognisedData = errors.New("unrecognised data")

error returned when data is not recognised at all

Functions

This section is empty.

Types

type Banksets added in v0.5.1

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

https://7800.8bitdev.org/index.php/Bankset_Bankswitching

func NewBanksets added in v0.5.1

func NewBanksets(_ Context, supergame bool, d []byte, ram bool) (*Banksets, error)

func (*Banksets) Access added in v0.5.1

func (ext *Banksets) Access(write bool, address uint16, data uint8) (uint8, error)

func (*Banksets) HLT added in v0.5.1

func (ext *Banksets) HLT(hlt bool)

func (*Banksets) Label added in v0.5.1

func (ext *Banksets) Label() string

type Bus added in v0.6.0

type Bus interface {
	Label() string
	Access(write bool, address uint16, data uint8) (uint8, error)
}

type CartridgeInsertor

type CartridgeInsertor struct {

	// whether controller should have just one-buttons. NOTE: placeholder
	// until we add more sophisticated controller requirements (paddle, etc.)
	OneButtonStick bool
	// contains filtered or unexported fields
}

func Fingerprint

func Fingerprint(filename string, mapper string) (CartridgeInsertor, error)

func (CartridgeInsertor) Data added in v0.4.2

func (c CartridgeInsertor) Data() []uint8

func (CartridgeInsertor) Filename added in v0.4.2

func (c CartridgeInsertor) Filename() string

func (CartridgeInsertor) ResetProcedure

func (c CartridgeInsertor) ResetProcedure() CartridgeReset

type CartridgeReset

type CartridgeReset struct {
	// if BypassBIOS is true then the normal BIOS initialisation procedure is bypassed
	BypassBIOS bool
}

type Context

type Context interface {
	elf.Context
	Rand8Bit() uint8
}

type Device

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

func Create

func Create(ctx Context) *Device

func (*Device) Access

func (dev *Device) Access(write bool, address uint16, data uint8) (uint8, error)

func (*Device) BusChange

func (dev *Device) BusChange(address uint16, data uint8) error

func (*Device) Chips added in v0.6.0

func (dev *Device) Chips(yield func(OptionalBus))

Chips iterates through the additional (none ROM/RAM) chips in the external device

func (*Device) Eject

func (dev *Device) Eject()

func (*Device) GetCoProcHandler

func (dev *Device) GetCoProcHandler() coprocessor.CartCoProcHandler

func (*Device) HLT added in v0.5.1

func (dev *Device) HLT(halt bool)

HLT should be called whenever the HLT line is changed

func (*Device) Insert

func (dev *Device) Insert(c CartridgeInsertor) error

func (*Device) IsEjected

func (dev *Device) IsEjected() bool

func (*Device) Label

func (dev *Device) Label() string

type Flat

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

func NewFlat

func NewFlat(_ Context, d []byte) (*Flat, error)

func (*Flat) Access

func (ext *Flat) Access(_ bool, address uint16, data uint8) (uint8, error)

func (*Flat) Label

func (ext *Flat) Label() string

type OptionalBus added in v0.6.0

type OptionalBus interface {
	Label() string
	Access(write bool, address uint16, data uint8) (uint8, bool, error)
}

the OptionalBus interface differs to the Bus interface because the Access() function returns an additional boolean result to indicate whether the address was recognised and handled. The intention is for the External device to call Access() on the OptionalBus first and to only call Access() on the main Bus device if the first Access() returned false

type SN added in v0.6.0

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

SN is used for both SN and Eagle

func NewSN added in v0.6.0

func NewSN(_ Context, d []byte, version string) (*SN, error)

func (*SN) Access added in v0.6.0

func (ext *SN) Access(write bool, address uint16, data uint8) (uint8, error)

func (*SN) Label added in v0.6.0

func (ext *SN) Label() string

type Supergame

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

https://7800.8bitdev.org/index.php/ATARI_7800_BANKSWITCHING_GUIDE

"There are several different types of Atari's SuperGame bankswitching. It basically consists of 8 16KB banks (0-7) that can be mapped in at $8000-$bfff. Bank 7 always is fixed at $c000-$ffff. To map in a chosen bank into $8000-$bfff you write it's bank number (0-7) to any address between $8000-bfff."

func NewSupergame

func NewSupergame(_ Context, d []byte, banked bool, exram bool, exrom bool) (*Supergame, error)

func (*Supergame) Access

func (ext *Supergame) Access(write bool, address uint16, data uint8) (uint8, error)

func (*Supergame) Label

func (ext *Supergame) Label() string

Directories

Path Synopsis
Package ace implements the ELF cartridge mapper.
Package ace implements the ELF cartridge mapper.

Jump to

Keyboard shortcuts

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