mirror of
https://github.com/ivanizag/izapple2.git
synced 2024-12-21 18:29:45 +00:00
Improved open and close apple handling on macs
This commit is contained in:
parent
0598a8a393
commit
4991feeb6f
@ -151,25 +151,26 @@ func sdlRun(a *izapple2.Apple2) {
|
||||
|
||||
var helpMessage = `
|
||||
|
||||
F1: Show/Hide help
|
||||
Ctrl-F2: Reset
|
||||
F4: Show/Hide CPU trace
|
||||
F5: Fast/Normal speed
|
||||
Ctrl-F5: Show speed
|
||||
F6: Next screen mode
|
||||
F7: Show/Hide pages
|
||||
F10: Next character set
|
||||
Ctrl-F10: Show/Hide character set
|
||||
Shift-F10: Show/Hide alternate text
|
||||
F12: Save screen snapshot
|
||||
Pause: Pause the emulation
|
||||
F1: Show/Hide help
|
||||
Ctrl-F2: Reset
|
||||
F4: Show/Hide CPU trace
|
||||
F5: Fast/Normal speed
|
||||
Ctrl-F5: Show speed
|
||||
F6: Next screen mode
|
||||
F7: Show/Hide pages
|
||||
F10: Next character set
|
||||
Ctrl-F10: Show/Hide character set
|
||||
Shift-F10: Show/Hide alternate text
|
||||
F12: Save screen snapshot
|
||||
Pause: Pause the emulation
|
||||
|
||||
Drop a file on the left or right
|
||||
side of the window to load a disk
|
||||
Left alt or option key: Open-Apple
|
||||
Right alt or option key: Closed-Apple
|
||||
|
||||
Drop a file on the left or right
|
||||
side of the window to load a disk
|
||||
|
||||
Run izapple2 -h for more options
|
||||
|
||||
More info at
|
||||
https://github.com/ivanizag/izapple2
|
||||
`
|
||||
|
||||
|
16
keyboard.go
16
keyboard.go
@ -1,6 +1,9 @@
|
||||
package izapple2
|
||||
|
||||
import "unicode"
|
||||
import (
|
||||
"slices"
|
||||
"unicode"
|
||||
)
|
||||
|
||||
// KeyboardProvider provides a keyboard implementation
|
||||
type KeyboardProvider interface {
|
||||
@ -29,8 +32,19 @@ func (k *KeyboardChannel) PutText(text string) {
|
||||
}
|
||||
}
|
||||
|
||||
var macOptionChars = []rune("ı˝•£‰ ⁄‘’≈œæ€®†¥øπå∫∂ƒ™¶§∑©√ßµ„…≤≥çñŒÆ€‡∏fl¯ˇ˘‹›◊˙˚")
|
||||
var macOptionSubs = []rune("!\"·$%&/()=qwertyopasdfghjkxcvbm,.<>cnQWETPGJKLZXVNM")
|
||||
|
||||
// PutRune sends a rune to the emulator if it is valid printable ASCII
|
||||
func (k *KeyboardChannel) PutRune(ch rune) {
|
||||
|
||||
// Some substitutions useful for Macs that transform chars with the option key
|
||||
pos := slices.Index(macOptionChars, ch)
|
||||
if pos >= 0 {
|
||||
println("Mac option char: ", string(ch), " -> ", string(macOptionSubs[pos]))
|
||||
ch = rune(macOptionSubs[pos])
|
||||
}
|
||||
|
||||
// We will use computed text only for printable ASCII chars
|
||||
if ch >= ' ' && ch <= '~' {
|
||||
if k.a.IsForceCaps() && ch >= 'a' && ch <= 'z' {
|
||||
|
Loading…
Reference in New Issue
Block a user