#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) img = screen.SnapshotCharacterGenerator(a, kp.showAltText)
window.SetTitle(fmt.Sprintf("%v character map", a.Name)) window.SetTitle(fmt.Sprintf("%v character map", a.Name))
} else if kp.showPages { } 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)) window.SetTitle(fmt.Sprintf("%v %v %vx%v", a.Name, screen.VideoModeName(a), img.Rect.Dx()/2, img.Rect.Dy()/2))
} else { } else {
img = screen.Snapshot(a, screen.ScreenModeNTSC) img = screen.Snapshot(a, kp.screenMode)
} }
if img != nil { if img != nil {
surface, err := sdl.CreateRGBSurfaceFrom(unsafe.Pointer(&img.Pix[0]), surface, err := sdl.CreateRGBSurfaceFrom(unsafe.Pointer(&img.Pix[0]),

View File

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