#12 Restore F6 and F12. F6 to switch mono green/NTSC modes

This commit is contained in:
Iván Izaguirre 2021-03-18 20:09:52 +01:00
parent c390be1ced
commit f9ba9256b5
2 changed files with 13 additions and 3 deletions

View File

@ -94,10 +94,10 @@ func sdlRun(a *izapple2.Apple2) {
img = screen.SnapshotCharacterGenerator(a, kp.showAltText)
window.SetTitle(fmt.Sprintf("%v character map", a.Name))
} else if kp.showPages {
img = screen.SnapshotParts(a, screen.ScreenModeNTSC)
img = screen.SnapshotParts(a, kp.screenMode)
window.SetTitle(fmt.Sprintf("%v %v %vx%v", a.Name, screen.VideoModeName(a), img.Rect.Dx()/2, img.Rect.Dy()/2))
} else {
img = screen.Snapshot(a, screen.ScreenModeNTSC)
img = screen.Snapshot(a, kp.screenMode)
}
if img != nil {
surface, err := sdl.CreateRGBSurfaceFrom(unsafe.Pointer(&img.Pix[0]),

View File

@ -15,12 +15,15 @@ type sdlKeyboard struct {
showPages bool
showCharGen bool
showAltText bool
screenMode int
}
func newSDLKeyBoard(a *izapple2.Apple2) *sdlKeyboard {
var k sdlKeyboard
k.a = a
k.keyChannel = izapple2.NewKeyboardChannel(a)
k.screenMode = screen.ScreenModeNTSC
return &k
}
@ -98,6 +101,12 @@ func (k *sdlKeyboard) putKey(keyEvent *sdl.KeyboardEvent) {
} else {
k.a.SendCommand(izapple2.CommandToggleSpeed)
}
case sdl.K_F6:
if k.screenMode == screen.ScreenModeNTSC {
k.screenMode = screen.ScreenModeGreen
} else {
k.screenMode = screen.ScreenModeNTSC
}
case sdl.K_F7:
k.showPages = !k.showPages
case sdl.K_F9:
@ -113,12 +122,13 @@ func (k *sdlKeyboard) putKey(keyEvent *sdl.KeyboardEvent) {
case sdl.K_F11:
k.a.SendCommand(izapple2.CommandToggleCPUTrace)
case sdl.K_F12:
fallthrough
case sdl.K_PRINTSCREEN:
err := screen.SaveSnapshot(k.a, screen.ScreenModeNTSC, "snapshot.png")
if err != nil {
fmt.Printf("Error saving snapshoot: %v.\n.", err)
} else {
fmt.Println("Saving snapshot")
fmt.Println("Saving snapshot 'snapshot.png'")
}
case sdl.K_PAUSE:
k.a.SendCommand(izapple2.CommandPauseUnpauseEmulator)