Documentation
¶
Index ¶
- Constants
- Variables
- func DumpTextModeAnsi(a *Apple2) string
- func LoadBlockDisk(filename string) (storage.BlockDisk, error)
- func LoadDiskette(filename string) (storage.Diskette, error)
- func LoadResource(filename string) ([]uint8, bool, error)
- type Apple2
- func (a *Apple2) BreakPoint() bool
- func (a *Apple2) GetCards() [8]Card
- func (a *Apple2) GetCgPageInfo() (int, int)
- func (a *Apple2) GetCurrentFreqMHz() float64
- func (a *Apple2) GetCycles() uint64
- func (a *Apple2) GetVideoSource() screen.VideoSource
- func (a *Apple2) IsForceCaps() bool
- func (a *Apple2) IsPaused() bool
- func (a *Apple2) IsProfiling() bool
- func (a *Apple2) ReleaseFastMode()
- func (a *Apple2) RequestFastMode()
- func (a *Apple2) Run()
- func (a *Apple2) SendCommand(commandId int)
- func (a *Apple2) SendLoadDisk(drive int, path string)
- func (a *Apple2) SetCycleBreakpoint(cycle uint64)
- func (a *Apple2) SetForceCaps(value bool)
- func (a *Apple2) SetJoysticksProvider(j JoysticksProvider)
- func (a *Apple2) SetKeyboardProvider(kb KeyboardProvider)
- func (a *Apple2) SetMouseProvider(m MouseProvider)
- func (a *Apple2) SetSpeakerProvider(s SpeakerProvider)
- func (a *Apple2) Start(paused bool)
- func (a *Apple2) UsesMouse() bool
- type Card
- type CardBrainBoard
- type CardBrainBoardII
- type CardDan2Controller
- type CardDisk2
- type CardDisk2Sequencer
- type CardFastChip
- type CardInOut
- type CardLanguage
- type CardLogger
- type CardMemoryExpansion
- type CardMouse
- type CardParallelPrinter
- type CardProDOSRomCard3
- type CardProDOSRomDrive
- type CardSaturn
- type CardSmartPort
- type CardSwyft
- type CardThunderClockPlus
- type CardVidHD
- type CardVidexUltraterm
- type CardVidexVideoterm
- type CardZ80SoftCard
- type CharacterGenerator
- type JoysticksProvider
- type KeyboardChannel
- type KeyboardProvider
- type MouseProvider
- type MultiRomCard
- type SmartPortFujinetClock
- type SmartPortFujinetNetwork
- type SmartPortHardDisk
- type SpeakerProvider
Constants ¶
const ( // CommandToggleSpeed toggles cpu speed between full speed and actual Apple II speed CommandToggleSpeed = iota + 1 // CommandShowSpeed toggles printinf the current freq in Mhz CommandShowSpeed // CommandDumpDebugInfo dumps useful info CommandDumpDebugInfo // CommandNextCharGenPage cycles the CharGen page if several CommandNextCharGenPage // CommandToggleCPUTrace toggle tracing of CPU execution CommandToggleCPUTrace // CommandKill stops the cpu execution loop CommandKill // CommandReset executes a 6502 reset CommandReset // CommandPauseUnpause allows the Pause button to freeze the emulator for a coffee break CommandPauseUnpause // CommandPause pauses the emulator CommandPause // CommandStart restarts the emulator CommandStart // CommandComplex for commands that use a struct with parameters CommandComplex )
const (
// CPUClockMhz is the actual Apple II clock speed
CPUClockMhz = 14.318 / 14
)
Variables ¶
var PROGMEM = [512]uint8{}/* 446 elements not displayed */
var PROGMEM_v7 = [3 * 512]uint8{}/* 1349 elements not displayed */
Functions ¶
func DumpTextModeAnsi ¶
DumpTextModeAnsi returns the text mode contents using ANSI escape codes for reverse and flash
func LoadBlockDisk ¶
LoadBlockDisk returns a BlockDisk
func LoadDiskette ¶
LoadDiskette returns a Diskette by detecting the format
Types ¶
type Apple2 ¶
type Apple2 struct { Name string // contains filtered or unexported fields }
Apple2 represents all the components and state of the emulated machine
func CreateConfiguredApple ¶
CreateConfiguredApple is a device independent main. Video, keyboard and speaker won't be defined
func (*Apple2) BreakPoint ¶
func (*Apple2) GetCgPageInfo ¶
func (*Apple2) GetCurrentFreqMHz ¶
func (*Apple2) GetVideoSource ¶
func (a *Apple2) GetVideoSource() screen.VideoSource
func (*Apple2) IsForceCaps ¶
IsForceCaps returns true when all letters are forced to upper case
func (*Apple2) IsProfiling ¶
IsProfiling returns true when profiling
func (*Apple2) ReleaseFastMode ¶
func (a *Apple2) ReleaseFastMode()
func (*Apple2) RequestFastMode ¶
func (a *Apple2) RequestFastMode()
func (*Apple2) SendCommand ¶
SendCommand enqueues a command to the emulator thread
func (*Apple2) SendLoadDisk ¶
func (*Apple2) SetCycleBreakpoint ¶
SetCycleBreakpoint sets a cycle number to pause the emulator. 0 to disable
func (*Apple2) SetForceCaps ¶
SetForceCaps allows the caps state to be toggled at runtime
func (*Apple2) SetJoysticksProvider ¶
func (a *Apple2) SetJoysticksProvider(j JoysticksProvider)
SetJoysticksProvider attaches an external joysticks provider
func (*Apple2) SetKeyboardProvider ¶
func (a *Apple2) SetKeyboardProvider(kb KeyboardProvider)
SetKeyboardProvider attaches an external keyboard provider
func (*Apple2) SetMouseProvider ¶
func (a *Apple2) SetMouseProvider(m MouseProvider)
SetMouseProvider attaches an external joysticks provider
func (*Apple2) SetSpeakerProvider ¶
func (a *Apple2) SetSpeakerProvider(s SpeakerProvider)
SetSpeakerProvider attaches an external keyboard provider
type Card ¶
type Card interface { GetName() string GetInfo() map[string]string // contains filtered or unexported methods }
Card represents an Apple II card to be inserted in a slot
type CardBrainBoard ¶
type CardBrainBoard struct {
// contains filtered or unexported fields
}
CardBrainBoard represents a Brain Board card
type CardBrainBoardII ¶
type CardBrainBoardII struct {
// contains filtered or unexported fields
}
CardBrainBoardII represents a Brain Board II card
type CardDan2Controller ¶
type CardDan2Controller struct {
// contains filtered or unexported fields
}
CardDan2Controller represents a Dan ][ controller card
type CardDisk2 ¶
type CardDisk2 struct {
// contains filtered or unexported fields
}
CardDisk2 is a DiskII interface card
type CardDisk2Sequencer ¶
type CardDisk2Sequencer struct {
// contains filtered or unexported fields
}
CardDisk2Sequencer is a DiskII interface card with the Woz state machine
func (*CardDisk2Sequencer) GetInfo ¶
func (c *CardDisk2Sequencer) GetInfo() map[string]string
GetInfo returns card info
type CardFastChip ¶
type CardFastChip struct {
// contains filtered or unexported fields
}
CardFastChip represents a
type CardInOut ¶
type CardInOut struct {
// contains filtered or unexported fields
}
CardInOut is an experimental card to bridge with the host console
type CardLanguage ¶
type CardLanguage struct {
// contains filtered or unexported fields
}
CardLanguage is an Language Card
type CardLogger ¶
type CardLogger struct {
// contains filtered or unexported fields
}
CardLogger is a fake card to log soft switch invocations
type CardMemoryExpansion ¶
type CardMemoryExpansion struct {
// contains filtered or unexported fields
}
CardMemoryExpansion is a Memory Expansion card
func (*CardMemoryExpansion) GetInfo ¶
func (c *CardMemoryExpansion) GetInfo() map[string]string
GetInfo returns card info
type CardMouse ¶
type CardMouse struct {
// contains filtered or unexported fields
}
CardMouse represents a SmartPort card
type CardParallelPrinter ¶
type CardParallelPrinter struct {
// contains filtered or unexported fields
}
CardParallelPrinter represents a Parallel Printer Interface card
type CardProDOSRomCard3 ¶
type CardProDOSRomCard3 struct {
// contains filtered or unexported fields
}
CardProDOSRomCard3 is a Memory Expansion card
type CardProDOSRomDrive ¶
type CardProDOSRomDrive struct {
// contains filtered or unexported fields
}
CardMemoryExpansion is a Memory Expansion card
type CardSaturn ¶
type CardSaturn struct {
// contains filtered or unexported fields
}
CardSaturn is a Saturn128 card
type CardSmartPort ¶
type CardSmartPort struct {
// contains filtered or unexported fields
}
CardSmartPort represents a SmartPort card
func (*CardSmartPort) AddDevice ¶
func (c *CardSmartPort) AddDevice(device smartPortDevice)
LoadImage loads a disk image
func (*CardSmartPort) GetInfo ¶
func (c *CardSmartPort) GetInfo() map[string]string
GetInfo returns smartPort info
type CardSwyft ¶
type CardSwyft struct {
// contains filtered or unexported fields
}
CardSwyft represents a Swyft card
type CardThunderClockPlus ¶
type CardThunderClockPlus struct {
// contains filtered or unexported fields
}
CardThunderClockPlus represents a ThunderClock+ card
type CardVidHD ¶
type CardVidHD struct {
// contains filtered or unexported fields
}
CardVidHD represents a VidHD card
type CardVidexUltraterm ¶
type CardVidexUltraterm struct {
// contains filtered or unexported fields
}
CardVidex represents a Videx Ultraterm compatible 80 column card
type CardVidexVideoterm ¶
type CardVidexVideoterm struct {
// contains filtered or unexported fields
}
CardVidexVideoterm represents a Videx compatible 80 column card
type CardZ80SoftCard ¶
type CardZ80SoftCard struct {
// contains filtered or unexported fields
}
CardVidHD represents a VidHD card
type CharacterGenerator ¶
type CharacterGenerator struct {
// contains filtered or unexported fields
}
CharacterGenerator represents the ROM wth the characters bitmaps
type JoysticksProvider ¶
JoysticksProvider abstracts the joysticks
type KeyboardChannel ¶
type KeyboardChannel struct {
// contains filtered or unexported fields
}
KeyboardChannel is a possible implemetation of a Keyboard provider
func NewKeyboardChannel ¶
func NewKeyboardChannel(a *Apple2) *KeyboardChannel
NewKeyboardChannel returns an instance of KeyboardChannel
func (*KeyboardChannel) GetKey ¶
func (k *KeyboardChannel) GetKey(_ bool) (key uint8, ok bool)
GetKey returns a pressed key if available
func (*KeyboardChannel) PutChar ¶
func (k *KeyboardChannel) PutChar(ch uint8)
PutChar sends a character to the emulator
func (*KeyboardChannel) PutRune ¶
func (k *KeyboardChannel) PutRune(ch rune)
PutRune sends a rune to the emulator if it is valid printable ASCII
func (*KeyboardChannel) PutText ¶
func (k *KeyboardChannel) PutText(text string)
PutText sends texts to the emulator as succesive chars
type KeyboardProvider ¶
KeyboardProvider provides a keyboard implementation
type MouseProvider ¶
MouseProvider abstracts the mouse
type MultiRomCard ¶
type MultiRomCard struct {
// contains filtered or unexported fields
}
MultiRomCard represents a Multiple Image ROM Card
type SmartPortFujinetClock ¶
type SmartPortFujinetClock struct {
// contains filtered or unexported fields
}
SmartPortFujinetClock represents a Fujinet clock device
func NewSmartPortFujinetClock ¶
func NewSmartPortFujinetClock(host *CardSmartPort) *SmartPortFujinetClock
NewSmartPortFujinetClock creates a new fujinet device
type SmartPortFujinetNetwork ¶
type SmartPortFujinetNetwork struct {
// contains filtered or unexported fields
}
SmartPortFujinetNetwork represents a Fujinet device
func NewSmartPortFujinetNetwork ¶
func NewSmartPortFujinetNetwork(host *CardSmartPort) *SmartPortFujinetNetwork
NewSmartPortFujinetNetwork creates a new fujinet device
type SmartPortHardDisk ¶
type SmartPortHardDisk struct {
// contains filtered or unexported fields
}
SmartPortHardDisk represents a hard disk
func NewSmartPortHardDisk ¶
func NewSmartPortHardDisk(host *CardSmartPort, filename string) (*SmartPortHardDisk, error)
NewSmartPortHardDisk creates a new hard disk with the smartPort interface
type SpeakerProvider ¶
type SpeakerProvider interface { // Click receives a speaker click. The argument is the CPU cycle when it is generated Click(cycle uint64) }
SpeakerProvider provides a speaker implementation
Source Files
¶
- apple2.go
- apple2Run.go
- apple2Tester.go
- boardApple2.go
- boardApple2e.go
- boardBase64a.go
- boardBasis108.go
- cardBase.go
- cardBrainBoard.go
- cardBrainBoard2.go
- cardBuilder.go
- cardDan2Controller.go
- cardDisk2.go
- cardDisk2DriveStepper.go
- cardDisk2Sequencer.go
- cardDisk2SequencerDrive.go
- cardFastChip.go
- cardInOut.go
- cardLanguage.go
- cardLogger.go
- cardMemoryExpansion.go
- cardMouse.go
- cardMultiRom.go
- cardParallelPrinter.go
- cardProDOSRomCard3.go
- cardProDOSRomDrive.go
- cardRGB.go
- cardRamWorks.go
- cardSaturn.go
- cardSmartport.go
- cardSwyft.go
- cardThunderClockPlus.go
- cardVidHD.go
- cardVidexUltraterm.go
- cardVidexVideotern.go
- cardZ80Softcard.go
- characterGenerator.go
- command.go
- configuration.go
- ioC0Page.go
- keyboard.go
- memoryManager.go
- memoryRange.go
- memoryRangeBasis108.go
- memoryTracer.go
- noSlotClockDS1216.go
- resources.go
- romX.go
- setup.go
- smartPortCall.go
- smartPortFujinetClock.go
- smartPortFujinetNetwork.go
- smartPortHardDisk.go
- softVideoSwitch.go
- traceApplecorn.go
- traceBuilder.go
- traceCpm.go
- traceCpm65.go
- traceMonitor.go
- tracePascal.go
- traceProDOS.go
- trackTracer.go
- video.go