processor

package
v0.6.1 Latest Latest
Warning

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

Go to latest
Published: Jun 1, 2021 License: Zlib Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrCPUHalt = errors.New("CPU HALT")
View Source
var ErrInterruptNotHandled = errors.New("interrupt not handled")

Functions

This section is empty.

Types

type Debug

type Debug interface {
	Break()
	GetStats() Stats
	InstallInterruptHandler(handler InterruptHandler, num ...int) error
}

type InterruptController

type InterruptController interface {
	GetInterrupt() (int, error)
	IRQ(n int)
}

type InterruptHandler

type InterruptHandler interface {
	HandleInterrupt(n int) error
}

type Processor

type Processor interface {
	Debug

	InByte(port uint16) byte
	OutByte(port uint16, data byte)
	InWord(port uint16) uint16
	OutWord(port uint16, data uint16)

	ReadByte(addr memory.Pointer) byte
	WriteByte(addr memory.Pointer, data byte)
	ReadWord(addr memory.Pointer) uint16
	WriteWord(addr memory.Pointer, data uint16)

	GetRegisters() *Registers
	GetInterruptController() InterruptController
	GetMappedMemoryDevice(addr memory.Pointer) memory.Memory
	GetMappedIODevice(port uint16) memory.IO

	InstallMemoryDevice(device memory.Memory, from, to memory.Pointer) error
	InstallMemoryDeviceAt(device memory.Memory, addr ...memory.Pointer) error
	InstallIODevice(device memory.IO, from, to uint16) error
	InstallIODeviceAt(device memory.IO, port ...uint16) error
}

type Registers

type Registers struct {
	AX, CX, DX, BX,
	SP, BP, SI, DI,
	ES, CS, SS, DS, IP uint16

	CF, PF, AF, ZF,
	SF, TF, IF, DF, OF bool

	Debug bool
}

func (*Registers) AH

func (r *Registers) AH() byte

func (*Registers) AL

func (r *Registers) AL() byte

func (*Registers) BH

func (r *Registers) BH() byte

func (*Registers) BL

func (r *Registers) BL() byte

func (*Registers) CH

func (r *Registers) CH() byte

func (*Registers) CL

func (r *Registers) CL() byte

func (*Registers) DH

func (r *Registers) DH() byte

func (*Registers) DL

func (r *Registers) DL() byte

func (*Registers) SetAH

func (r *Registers) SetAH(v byte)

func (*Registers) SetAL

func (r *Registers) SetAL(v byte)

func (*Registers) SetBH

func (r *Registers) SetBH(v byte)

func (*Registers) SetBL

func (r *Registers) SetBL(v byte)

func (*Registers) SetCH

func (r *Registers) SetCH(v byte)

func (*Registers) SetCL

func (r *Registers) SetCL(v byte)

func (*Registers) SetDH

func (r *Registers) SetDH(v byte)

func (*Registers) SetDL

func (r *Registers) SetDL(v byte)

type Stats

type Stats struct {
	NumInterrupts   uint32
	NumInstructions uint64
	RX, TX          uint64
	NOP             uint64
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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