diff --git a/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.cod b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.cod new file mode 100644 index 00000000..f3d9ab80 Binary files /dev/null and b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.cod differ diff --git a/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.hex b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.hex new file mode 100644 index 00000000..ce13743f --- /dev/null +++ b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.hex @@ -0,0 +1,9 @@ +:020000040000FA +:10000000CF0C0200000C06000604260446040A0C6D +:100010003200A00C3100FF0C30002605460412020D +:100020003300F302110A04002604460512023300CD +:10003000F302180AF0020D0AF1020B0AF202090A91 +:100040000605FF0C3300F302230A060426044604C7 +:10005000140C3400040003000000F4022A0A070A0A +:021FFE00EF0FE3 +:00000001FF diff --git a/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.lst b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.lst new file mode 100644 index 00000000..c3e1f24b --- /dev/null +++ b/trunk/workspace/05_PIC_Projects/12f200-Scacciazanzare_ASM/.10f200-Scacciazanzare.lst @@ -0,0 +1,249 @@ +gpasm-1.4.0 #1107 (Jan 1 2021) 10f200-Scacci 10-19-2025 22:01:49 PAGE 1 + + +LOC OBJECT CODE LINE SOURCE TEXT + VALUE + + 00001 ; ****************************************************************** + 00002 ; Scacciazanzare with a PIC10F200 + 00003 ; 2016-08-11 (c) Paolo Iocco + 00004 ; ****************************************************************** + 00005 ; + 00006 ; Circuit diagram + 00007 ; --------------- + 00008 ; +--\/--+ + 00009 ; LED <----------|1° 6|<--------|50K|---+5V + 00010 ; GND ---------->|2 5|<------- +5V + 00011 ; BUZ1 <---------|3 4|-------> BUZ2 + 00012 ; +------+ + 00013 ; + 00014 ; ****************************************************************** + 00015 + 00016 INCLUDE "p10f200.inc" ; include le definizioni standard + 00001 LIST + 00002 + 00003 ;========================================================================== + 00004 ; Build date : Aug 07 2014 + 00005 ; MPASM PIC10F200 processor include + 00006 ; + 00007 ; (c) Copyright 1999-2014 Microchip Technology, All rights reserved + 00008 ;========================================================================== + 00009 + 00152 LIST + 00017 list p=10F200 ; Processoer utilizzato + 00018 ;errorlevel -302 ;suppress message "Bank Switch Check" +0FFF 0FEF 00019 __CONFIG _IntRC_OSC & _WDT_ON & _CP_OFF & _MCLRE_OFF + 00020 + 00021 ; - - - - - + 00000010 00022 ciclo_l EQU 0x10 ; primo valore RAM (0x10-0x1F) + 00000011 00023 ciclo_h EQU 0x11 + 00000012 00024 periodo EQU 0x12 + 00000013 00025 dummy EQU 0x13 + 00000014 00026 dormi EQU 0x14 + 00027 + 00028 #define LED GPIO,0 + 00029 #define BUZ1 GPIO,1 + 00030 #define BUZ2 GPIO,2 + 00031 +0000 00032 org 0x00 +0000 00033 Start: +0000 0CCF 00034 movlw b'11001111' ; PSA + Prescaler 111 (1:128) +0001 0002 00035 option +0002 0C00 00036 movlw b'0000' ; set GPIO full OUT +0003 0006 00037 tris GPIO + 00038 +0004 0406 00039 bcf LED ; set LED off +0005 0426 00040 bcf BUZ1 ; set BUZ1 off +0006 0446 00041 bcf BUZ2 ; set BUZ2 off + 00042 +0007 00043 Loop: + gpasm-1.4.0 #1107 (Jan 1 2021) 10f200-Scacci 10-19-2025 22:01:49 PAGE 2 + + +LOC OBJECT CODE LINE SOURCE TEXT + VALUE + + 00044 ; ** emette i suoni da ca. 63KHz a 15KHz (ciclo: 1=63,3KHz, 10=15,7KHz) +0007 0C0A 00045 movlw d'10' ; Invia 10 trame di durata diversa +0008 0032 00046 movwf periodo + 00047 +0009 00048 Trama: +0009 0CA0 00049 movlw d'160' ; 160*256 periodi per frequenza +000A 0031 00050 movwf ciclo_h + 00051 +000B 00052 Ciclo_High: +000B 0CFF 00053 movlw d'255' ; ciclo interno +000C 0030 00054 movwf ciclo_l + 00055 +000D 00056 Ciclo_Low: + 00057 ; * ************ * + 00058 ; * Periodo ON * + 00059 ; * ************ * +000D 0526 00060 bsf BUZ1 ; set BUZ1 on +000E 0446 00061 bcf BUZ2 ; set BUZ2 off +000F 0212 00062 movf periodo,w +0010 0033 00063 movwf dummy +0011 00064 OUT_ON: +0011 02F3 00065 decfsz dummy,f +0012 0A11 00066 goto OUT_ON +0013 0004 00067 clrwdt ; clrwdt qui per equilibrare le durate ON ed OFF + 00068 ; * ************* * + 00069 ; * Periodo OFF * + 00070 ; * ************* * +0014 0426 00071 bcf BUZ1 ; set BUZ1 off +0015 0546 00072 bsf BUZ2 ; set BUZ2 on +0016 0212 00073 movf periodo,w +0017 0033 00074 movwf dummy +0018 00075 OUT_OFF: +0018 02F3 00076 decfsz dummy,f +0019 0A18 00077 goto OUT_OFF + 00078 ; * NEXT Ciclo Low +001A 02F0 00079 decfsz ciclo_l,f +001B 0A0D 00080 goto Ciclo_Low + 00081 ; * NEXT Ciclo High +001C 02F1 00082 decfsz ciclo_h,f +001D 0A0B 00083 goto Ciclo_High + 00084 ; * NEXT Trama +001E 02F2 00085 decfsz periodo,f +001F 0A09 00086 goto Trama + 00087 + 00088 ; * ************* * + 00089 ; * Lampeggio LED * + 00090 ; * ************* * +0020 0506 00091 bsf LED ; set LED on +0021 0CFF 00092 movlw d'255' ; Pausa (ca. xxx ms) +0022 0033 00093 movwf dummy +0023 00094 LED_ON: +0023 02F3 00095 decfsz dummy,f +0024 0A23 00096 goto LED_ON + gpasm-1.4.0 #1107 (Jan 1 2021) 10f200-Scacci 10-19-2025 22:01:49 PAGE 3 + + +LOC OBJECT CODE LINE SOURCE TEXT + VALUE + + 00097 + 00098 ; * ****************** * + 00099 ; * Preparazione SLEEP * + 00100 ; * ****************** * +0025 0406 00101 bcf LED ; set LED off +0026 0426 00102 bcf BUZ1 ; set BUZ1 off +0027 0446 00103 bcf BUZ2 ; set BUZ2 off + 00104 ; * dorme per 20 cicli di watchdog +0028 0C14 00105 movlw d'20' +0029 0034 00106 movwf dormi +002A 00107 Ciclo_Sleep: +002A 0004 00108 clrwdt +002B 0003 00109 sleep +002C 0000 00110 nop +002D 02F4 00111 decfsz dormi,f +002E 0A2A 00112 goto Ciclo_Sleep + 00113 + 00114 ; * Torna al ciclo principale +002F 0A07 00115 goto loop + 00116 end + gpasm-1.4.0 #1107 (Jan 1 2021) 10f200-Scacci 10-19-2025 22:01:49 PAGE 4 + + +SYMBOL TABLE + LABEL VALUE + +BUZ1 GPIO,1 +BUZ2 GPIO,2 +C 00000000 +CAL0 00000001 +CAL1 00000002 +CAL2 00000003 +CAL3 00000004 +CAL4 00000005 +CAL5 00000006 +CAL6 00000007 +Ciclo_High 0000000B +Ciclo_Low 0000000D +Ciclo_Sleep 0000002A +DC 00000001 +F 00000001 +FOSC4 00000000 +FSR 00000004 +GP0 00000000 +GP1 00000001 +GP2 00000002 +GP3 00000003 +GPIO 00000006 +GPWUF 00000007 +INDF 00000000 +LED GPIO,0 +LED_ON 00000023 +Loop 00000007 +NOT_GPPU 00000006 +NOT_GPWU 00000007 +NOT_PD 00000003 +NOT_TO 00000004 +OSCCAL 00000005 +OUT_OFF 00000018 +OUT_ON 00000011 +PCL 00000002 +PS0 00000000 +PS1 00000001 +PS2 00000002 +PSA 00000003 +STATUS 00000003 +Start 00000000 +T0CS 00000005 +T0SE 00000004 +TMR0 00000001 +TRISIO0 00000000 +TRISIO1 00000001 +TRISIO2 00000002 +TRISIO3 00000003 +Trama 00000009 +W 00000000 +Z 00000002 +_CONFIG 00000FFF +_CP_OFF 00000FFF + gpasm-1.4.0 #1107 (Jan 1 2021) 10f200-Scacci 10-19-2025 22:01:49 PAGE 5 + + +SYMBOL TABLE + LABEL VALUE + +_CP_ON 00000FF7 +_IDLOC0 00000100 +_IDLOC1 00000101 +_IDLOC2 00000102 +_IDLOC3 00000103 +_IntRC_OSC 00000FFF +_MCLRE_OFF 00000FEF +_MCLRE_ON 00000FFF +_OSC_IntRC 00000FFF +_WDTE_OFF 00000FFB +_WDTE_ON 00000FFF +_WDT_OFF 00000FFB +_WDT_ON 00000FFF +__10F200 00000001 +__CODE_END 000000FF +__CODE_START 00000000 +__VECTOR_RESET 00000000 +ciclo_h 00000011 +ciclo_l 00000010 +dormi 00000014 +dummy 00000013 +periodo 00000012 + + +MEMORY USAGE MAP ('X' = Used, '-' = Unused) + +0000 : XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX ---------------- +0FC0 : ---------------- ---------------- ---------------- ---------------X + +All other memory blocks unused. + +Program Memory Words Used: 48 +Program Memory Words Free: 208 + + +Errors : 0 +Warnings : 0 reported, 0 suppressed +Messages : 0 reported, 0 suppressed + + \ No newline at end of file diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos - copia.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos - copia.vkm new file mode 100644 index 00000000..dec1eb73 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos - copia.vkm @@ -0,0 +1,327 @@ +# GTK3-VICE keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE GTK3 v3.4 +# Mapped for positional compatibility to C-128 Keyboards. +# Based on C64 Positional Layout. +# Keys not present in C-64 (like NumPad Keys, ESC, TAB) are accessed with Right Shift Key. +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!LCTRL row col' left control keyboard row/column +# '!VCTRL ctrlkey' virtual control key (LCTRL) +# '!LCBM row col' left CBM keyboard row/column +# '!VCBM cbmkey' virtual CBM key (LCBM) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 key is shift-lock on emulated machine +# 128 shift modifier required on host +# 256 key is used for an alternative keyboard mapping +# 512 alt-r (alt-gr) modifier required on host +# 1024 ctrl modifier required on host +# 2048 key is combined with cbm for this keysym/scancode +# 4096 key is combined with ctrl for this keysym/scancode +# 8192 key is (left) cbm on emulated machine +# 16384 key is (left) ctrl on emulated machine +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# Positional Mapping, US Layout, C128, X11 + +# C128 Keyboard matrix +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ + + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 6 4 +!VSHIFT RSHIFT + + + +# 40/80 column key +F6 -4 0 + +# CAPS LOCK (ASCII/DIN) key +F10 -4 1 + +#################### +# Restore key mappings +Page_Up -3 0 + +##################### +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| + +BackSpace 0 0 8 +Return 0 1 8 +Right 0 2 8 +F1 0 4 8 +F3 0 5 8 +F5 0 6 8 +F7 0 3 8 +Down 0 7 8 + +##################### +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | + +numbersign 1 0 8 +dollar 1 3 8 +Shift_L 1 7 2 + +##################### +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | + +percent 2 0 8 +asciicircum 2 3 8 + +##################### +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | + +ampersand 3 0 8 +asterisk 3 3 8 + +##################### +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | + +parenleft 4 0 8 +parenright 4 3 8 + +##################### +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | + +underscore 5 0 8 +minus 5 0 8 +plus 5 3 8 +equal 5 3 8 +period 5 4 8 +greater 5 4 1 +semicolon 5 5 8 +colon 5 5 8 +braceleft 5 6 8 +bracketleft 5 6 8 +comma 5 7 8 +less 5 7 8 + +##################### +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | + + +Insert 6 0 8 +braceright 6 1 8 +bracketright 6 1 8 +apostrophe 6 2 8 +quotedbl 6 2 8 +Home 6 3 8 +Shift_R 6 4 4 +backslash 6 5 8 +bar 6 5 8 +Delete 6 6 8 +question 6 7 8 +slash 6 7 8 + +##################### +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | + +exclam 7 0 8 +dead_grave 7 1 8 # Arrow_LFT <- +dead_perispomeni 7 1 8 # Arrow_LFT <- +Tab 7 2 8 # Control <- +at 7 3 8 +space 7 4 8 +Control_L 7 5 8 # CBM Key +Escape 7 7 8 # RUN/STOP <- + +##################### +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| + +F2 8 0 8 +KP_8 8 1 8 +KP_5 8 2 8 +F11 8 3 8 # TAB <- +KP_2 8 4 8 +KP_4 8 5 8 +KP_7 8 6 8 +KP_1 8 7 8 + +##################### +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| + +KP_Multiply 9 0 8 +KP_Add 9 1 8 +KP_Subtract 9 2 8 +F4 9 3 8 +KP_Enter 9 4 8 +KP_6 9 5 8 +KP_9 9 6 8 +KP_3 9 7 8 + +##################### +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| + +F9 10 0 8 +KP_0 10 1 8 +KP_Decimal 10 2 8 +Up 10 3 8 +#Down 10 4 8 +Left 10 5 8 +#Right 10 6 8 +KP_Divide 10 7 8 + + +#################### +# Dead keys support for those using US-International keyboard layout. +dead_circumflex 2 3 8 # & +dead_acute 6 2 8 # ; +dead_diaeresis 6 2 8 # ] +grave 7 1 8 # Arrow_LFT <- +asciitilde 7 1 8 # Arrow_LFT <- + + +##################### +# letters and numbers + +0 4 3 8 +1 7 0 8 +2 7 3 8 +3 1 0 8 +4 1 3 8 +5 2 0 8 +6 2 3 8 +7 3 0 8 +8 3 3 8 +9 4 0 8 + +A 1 2 8 +B 3 4 8 +C 2 4 8 +D 2 2 8 +E 1 6 8 +F 2 5 8 +G 3 2 8 +H 3 5 8 +I 4 1 8 +J 4 2 8 +K 4 5 8 +L 5 2 8 +M 4 4 8 +N 4 7 8 +O 4 6 8 +P 5 1 8 +Q 7 6 8 +R 2 1 8 +S 1 5 8 +T 2 6 8 +U 3 6 8 +V 3 7 8 +W 1 1 8 +X 2 7 8 +Y 3 1 8 +Z 1 4 8 +a 1 2 8 +b 3 4 8 +c 2 4 8 +d 2 2 8 +e 1 6 8 +f 2 5 8 +g 3 2 8 +h 3 5 8 +i 4 1 8 +j 4 2 8 +k 4 5 8 +l 5 2 8 +m 4 4 8 +n 4 7 8 +o 4 6 8 +p 5 1 8 +q 7 6 8 +r 2 1 8 +s 1 5 8 +t 2 6 8 +u 3 6 8 +v 3 7 8 +w 1 1 8 +x 2 7 8 +y 3 1 8 +z 1 4 8 + + + + + +############################################################################## \ No newline at end of file diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos.vkm new file mode 100644 index 00000000..a350fa39 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C128/Keymmodore64_VICEGTK_C128_pos.vkm @@ -0,0 +1,330 @@ +# GTK3-VICE keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE GTK3 v3.4 +# Mapped for positional compatibility to C-128 Keyboards. +# Based on C64 Positional Layout. +# Keys not present in C-64 (like NumPad Keys, ESC, TAB) are accessed with Right Shift Key. +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!LCTRL row col' left control keyboard row/column +# '!VCTRL ctrlkey' virtual control key (LCTRL) +# '!LCBM row col' left CBM keyboard row/column +# '!VCBM cbmkey' virtual CBM key (LCBM) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 key is shift-lock on emulated machine +# 128 shift modifier required on host +# 256 key is used for an alternative keyboard mapping +# 512 alt-r (alt-gr) modifier required on host +# 1024 ctrl modifier required on host +# 2048 key is combined with cbm for this keysym/scancode +# 4096 key is combined with ctrl for this keysym/scancode +# 8192 key is (left) cbm on emulated machine +# 16384 key is (left) ctrl on emulated machine +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# Positional Mapping, US Layout, C128, X11 + +# C128 Keyboard matrix +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ + + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 6 4 +!VSHIFT RSHIFT +!LCTRL 7 2 +!VCTRL LCTRL +!LCBM 7 5 +!VCBM LCBM + + +# 40/80 column key +F6 -4 0 + +# CAPS LOCK (ASCII/DIN) key +F10 -4 1 + +#################### +# Restore key mappings +Page_Up -3 0 + +##################### +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| + +BackSpace 0 0 8 +Return 0 1 8 +Right 0 2 8 +F1 0 4 8 +F3 0 5 8 +F5 0 6 8 +F7 0 3 8 +Down 0 7 8 + +##################### +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | + +numbersign 1 0 8 +dollar 1 3 8 +Shift_L 1 7 2 + +##################### +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | + +percent 2 0 8 +asciicircum 2 3 8 + +##################### +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | + +ampersand 3 0 8 +asterisk 3 3 8 + +##################### +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | + +parenleft 4 0 8 +parenright 4 3 8 + +##################### +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | + +underscore 5 0 8 +minus 5 0 8 +plus 5 3 8 +equal 5 3 8 +period 5 4 8 +greater 5 4 1 +semicolon 5 5 8 +colon 5 5 8 +braceleft 5 6 8 +bracketleft 5 6 8 +comma 5 7 8 +less 5 7 8 + +##################### +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | + + +Insert 6 0 8 +braceright 6 1 8 +bracketright 6 1 8 +apostrophe 6 2 8 +quotedbl 6 2 8 +Home 6 3 8 +Shift_R 6 4 4 +backslash 6 5 8 +bar 6 5 8 +Delete 6 6 8 +question 6 7 8 +slash 6 7 8 + +##################### +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | + +exclam 7 0 8 +dead_grave 7 1 8 # Arrow_LFT <- +dead_perispomeni 7 1 8 # Arrow_LFT <- +Tab 7 2 16384 # Control <- +at 7 3 8 +space 7 4 8 +Control_L 7 5 8192 # CBM Key +Escape 7 7 8 # RUN/STOP <- + +##################### +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| + +F2 8 0 8 +KP_8 8 1 8 +KP_5 8 2 8 +F11 8 3 8 # TAB <- +KP_2 8 4 8 +KP_4 8 5 8 +KP_7 8 6 8 +KP_1 8 7 8 + +##################### +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| + +KP_Multiply 9 0 8 +KP_Add 9 1 8 +KP_Subtract 9 2 8 +F4 9 3 8 +KP_Enter 9 4 8 +KP_6 9 5 8 +KP_9 9 6 8 +KP_3 9 7 8 + +##################### +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| + +F9 10 0 8 +KP_0 10 1 8 +KP_Decimal 10 2 8 +Up 10 3 8 +#Down 10 4 8 +Left 10 5 8 +#Right 10 6 8 +KP_Divide 10 7 8 + + +#################### +# Dead keys support for those using US-International keyboard layout. +dead_circumflex 2 3 8 # & +dead_acute 6 2 8 # ; +dead_diaeresis 6 2 8 # ] +grave 7 1 8 # Arrow_LFT <- +asciitilde 7 1 8 # Arrow_LFT <- + + +##################### +# letters and numbers + +0 4 3 8 +1 7 0 8 +2 7 3 8 +3 1 0 8 +4 1 3 8 +5 2 0 8 +6 2 3 8 +7 3 0 8 +8 3 3 8 +9 4 0 8 + +A 1 2 8 +B 3 4 8 +C 2 4 8 +D 2 2 8 +E 1 6 8 +F 2 5 8 +G 3 2 8 +H 3 5 8 +I 4 1 8 +J 4 2 8 +K 4 5 8 +L 5 2 8 +M 4 4 8 +N 4 7 8 +O 4 6 8 +P 5 1 8 +Q 7 6 8 +R 2 1 8 +S 1 5 8 +T 2 6 8 +U 3 6 8 +V 3 7 8 +W 1 1 8 +X 2 7 8 +Y 3 1 8 +Z 1 4 8 +a 1 2 8 +b 3 4 8 +c 2 4 8 +d 2 2 8 +e 1 6 8 +f 2 5 8 +g 3 2 8 +h 3 5 8 +i 4 1 8 +j 4 2 8 +k 4 5 8 +l 5 2 8 +m 4 4 8 +n 4 7 8 +o 4 6 8 +p 5 1 8 +q 7 6 8 +r 2 1 8 +s 1 5 8 +t 2 6 8 +u 3 6 8 +v 3 7 8 +w 1 1 8 +x 2 7 8 +y 3 1 8 +z 1 4 8 + + + + + +############################################################################## \ No newline at end of file diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C64/Keymmodore64_VICEGTK_C64_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C64/Keymmodore64_VICEGTK_C64_pos.vkm new file mode 100644 index 00000000..471ccb18 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/C64/Keymmodore64_VICEGTK_C64_pos.vkm @@ -0,0 +1,269 @@ +# VICE GTK3 based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE GTK3 v3.4 +# Using default positional VICE layout. +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!SHIFTL shiftkey' shift lock key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 shift lock +# 256 key is used for an alternative keyboard mapping +# +# Negative row values: +# 'keysym -1 n' joystick keymap A, direction n +# 'keysym -2 n' joystick keymap B, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# Positional Mapping, US Layout, C64, X11 + +# C64 keyboard matrix: +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 6 4 +!VSHIFT RSHIFT +!SHIFTL LSHIFT + +##################### +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| + +BackSpace 0 0 8 +Return 0 1 8 +Right 0 2 8 +F7 0 3 8 +F1 0 4 8 +F3 0 5 8 +F5 0 6 8 +Down 0 7 8 + + +##################### +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | + +numbersign 1 0 8 +dollar 1 3 8 +Shift_L 1 7 2 + + +##################### +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | + +percent 2 0 8 +asciicircum 2 3 8 + +##################### +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | + +ampersand 3 0 8 +asterisk 3 3 8 + +##################### +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | + +parenleft 4 0 8 +parenright 4 3 8 + +##################### +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | + +underscore 5 0 8 +minus 5 0 8 +plus 5 3 8 +equal 5 3 8 +period 5 4 8 +greater 5 4 1 +semicolon 5 5 8 +colon 5 5 8 +braceleft 5 6 8 +bracketleft 5 6 8 +comma 5 7 8 +less 5 7 8 + +##################### +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | + +#sterling 6 0 8 +Insert 6 0 8 +braceright 6 1 8 +bracketright 6 1 8 +apostrophe 6 2 8 +quotedbl 6 2 8 +Home 6 3 8 +Shift_R 6 4 4 +backslash 6 5 8 +bar 6 5 8 +Delete 6 6 8 +question 6 7 8 +slash 6 7 8 + +##################### +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | + +exclam 7 0 8 +asciitilde 7 1 8 +grave 7 1 8 +Tab 7 2 8 +ISO_Left_Tab 7 2 8 +at 7 3 8 +space 7 4 8 +Control_L 7 5 8 +Escape 7 7 8 + +##################### +# letters and numbers + +0 4 3 8 +1 7 0 8 +2 7 3 8 +3 1 0 8 +4 1 3 8 +5 2 0 8 +6 2 3 8 +7 3 0 8 +8 3 3 8 +9 4 0 8 + +A 1 2 8 +B 3 4 8 +C 2 4 8 +D 2 2 8 +E 1 6 8 +F 2 5 8 +G 3 2 8 +H 3 5 8 +I 4 1 8 +J 4 2 8 +K 4 5 8 +L 5 2 8 +M 4 4 8 +N 4 7 8 +O 4 6 8 +P 5 1 8 +Q 7 6 8 +R 2 1 8 +S 1 5 8 +T 2 6 8 +U 3 6 8 +V 3 7 8 +W 1 1 8 +X 2 7 8 +Y 3 1 8 +Z 1 4 8 +a 1 2 8 +b 3 4 8 +c 2 4 8 +d 2 2 8 +e 1 6 8 +f 2 5 8 +g 3 2 8 +h 3 5 8 +i 4 1 8 +j 4 2 8 +k 4 5 8 +l 5 2 8 +m 4 4 8 +n 4 7 8 +o 4 6 8 +p 5 1 8 +q 7 6 8 +r 2 1 8 +s 1 5 8 +t 2 6 8 +u 3 6 8 +v 3 7 8 +w 1 1 8 +x 2 7 8 +y 3 1 8 +z 1 4 8 + +# Restore key mappings +Page_Up -3 0 +---- + +# Dead keys support for those using US-International keyboard layout. +dead_circumflex 2 3 8 # & +dead_tilde 7 1 8 # A_LFT <- +dead_grave 7 1 8 # A_LFT <- +dead_acute 6 2 8 # ; +dead_diaeresis 6 2 8 # ] + +# joystick keymap A (port 1) +KP_8 -1 7 /* NumPad 8 -> UP */ +KP_2 -1 2 /* NumPad 2 -> DOWN */ +KP_4 -1 4 /* NumPad 4 -> LEFT */ +KP_6 -1 5 /* NumPad 6 -> RIGHT */ +KP_0 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +KP_7 -2 7 /* NumPad 7 -> UP */ +KP_3 -2 2 /* NumPad 3 -> DOWN */ +KP_1 -2 4 /* NumPad 1 -> LEFT */ +KP_9 -2 5 /* NumPad 9 -> RIGHT */ +KP_Decimal -2 0 /* NumPad . -> FIRE */ diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_bu_us_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_bu_us_pos.vkm new file mode 100644 index 00000000..9e5b4e85 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_bu_us_pos.vkm @@ -0,0 +1,294 @@ +# GTK3-VICE keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE GTK3 v3.4 +# Mapped for compatibility to PET Models with Business Keyboards only (3000B, 4000B and 80000 models). +# Based on C64 Positional Layout. +# +# ESCAPE is mapped to F1 Key. +# OFF/REVERSE is mapped to F3 Key. +# REPEAT is mapped to F5 Key. +# Backslash is mapped to £ (Pound) Key. +# TAB is mapped to CTRL Key. +# NumericPad Keys (1 to 0 and Dot) are accessed by pressing Commodore Key (C=). +# Brackets ([/]) Keys are accessed by pressing either Commodore Key (C=) ot Shift Key. +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# + +# this is a PET business (uk) keyboard mapping (positional) + +# Business (UK) keyboard matrix: +# +# Keys starting with 'KP' are on the number pad. +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 | 2 | 5 | 8 | - | KP8 |crsr rgt| ^N | . | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 | 1 | 4 | 7 | 0 | KP7 | ^ |--------| KP9 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | escape | s | f | h | ] .| k | ; .| KP5 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | a | d | g | j | return | l | @ .| KP6 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | tab | w | r | y | \ .| i | p | del | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | q | e | t | u |crsr dwn| o | [ .| KP4 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 |l shift | c | b | . | KP. | ^Y |r shift | KP3 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 | z | v | n | , | KP0 | ^O | repeat | KP2 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 8 | RVS | x | space | m | home | ^U | / | KP1 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 9 | <-- | 3 | 6 | 9 |runstop | : |--------| ^V | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +# ^N = both shifts + 2 +# ^Y = left shift + TAB + I +# ^O = Z + A + L +# ^U = RVS + A + L +# ^V = TAB + <- + DEL + +# Business (US) matrix (differences to UK) +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | | | | | ; | | \ | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | | | | | | | [ | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | | | | | @ | | | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | | | | | | | ] | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ + +!CLEAR +!LSHIFT 6 0 +!RSHIFT 6 6 +!VSHIFT RSHIFT + +Right 0 5 8 +Down 5 4 8 +Shift_L 6 0 2 +Shift_R 6 6 4 +Return 3 4 8 + + +# CLR/HOME +Home 8 4 8 + +# RUN/STOP +Èscape 9 4 8 + +# INST/DEL (Keymmodore maps both INST/DEL and RESTORE the same because there is no RESTORE Key in PET Keyboards). +BackSpace 4 7 8 + +# ESCAPE (Using F1 Key) +F1 2 0 8 + +# OFF/RVS (Using F5 Key) +F3 8 0 8 + +# REPEAT (Using F7 Key) +F7 7 6 8 + +# Arrow Up +Delete 1 5 8 + +# Arrow Left +dead_grave 9 0 0 +dead_perispomeni 9 0 1 +grave 9 0 0 +asciitilde 9 0 1 + +# TAB +Tab 4 0 0 +ISO_Left_Tab 4 0 1 + +# Multiply/Colon (*/:) +bracketright 9 5 1 +braceright 9 5 1 +semicolon 9 5 0 + +# At (@) +bracketleft 3 6 0 +braceleft 3 6 0 + +# Backslash (\) (Using Pound Key) +Insert 4 4 0 +F4 4 4 1 + +# Question/Slash (? / /) +slash 8 6 0 +question 8 6 1 + +# Addition / Semicolon (+/;) +minus 2 6 1 +underscore 2 6 1 +dead_acute 2 6 0 +apostrophe 2 6 0 + +# Equal / Minus (=/-) +backslash 0 3 1 +bar 0 3 1 +equal 0 3 0 +plus 0 3 0 + +# Brace Left +colon 5 6 1 +F10 5 6 8 + +# Brace Right +dead_diaeresis 2 4 0 +quotedbl 2 4 0 +F11 2 4 8 + + +# Less/Comma (/.) +greater 6 3 1 +period 6 3 0 + +# Space bar +space 8 2 8 + + +# Num_Pad +KP_1 8 7 0 +KP_2 7 7 0 +KP_3 6 7 0 +KP_4 5 7 0 +KP_5 2 7 0 +KP_6 3 7 0 +KP_7 1 4 0 +KP_8 0 4 0 +KP_9 1 7 0 +KP_0 7 4 0 +KP_Decimal 6 4 0 + +# Letters + +a 3 0 0 +b 6 2 0 +c 6 1 0 +d 3 1 0 +e 5 1 0 +f 2 2 0 +g 3 2 0 +h 2 3 0 +i 4 5 0 +j 3 3 0 +k 2 5 0 +l 3 5 0 +m 8 3 0 +n 7 2 0 +o 5 5 0 +p 4 6 0 +q 5 0 0 +r 4 2 0 +s 2 1 0 +t 5 2 0 +u 5 3 0 +v 7 1 0 +w 4 1 0 +x 8 1 0 +y 4 3 0 +z 7 0 0 + +A 3 0 1 +B 6 2 1 +C 6 1 1 +D 3 1 1 +E 5 1 1 +F 2 2 1 +G 3 2 1 +H 2 3 1 +I 4 5 1 +J 3 3 1 +K 2 5 1 +L 3 5 1 +M 8 3 1 +N 7 2 1 +O 5 5 1 +P 4 6 1 +Q 5 0 1 +R 4 2 1 +S 2 1 1 +T 5 2 1 +U 5 3 1 +V 7 1 1 +W 4 1 1 +X 8 1 1 +Y 4 3 1 +Z 7 0 1 + + + +# Top row of keys: + +1 1 0 0 # 1 +exclam 1 0 1 # shift 1 +2 0 0 0 # 2 +at 0 0 1 # shift 2 +3 9 1 0 # 3 +numbersign 9 1 1 # shift 3 +4 1 1 0 # 4 +dollar 1 1 1 # shift 4 +5 0 1 0 # 5 +percent 0 1 1 # shift 5 +6 9 2 0 # 6 +dead_circumflex 9 2 1 # shift 6 +asciicircum 9 2 1 # shift 6 +7 1 2 0 # 7 +ampersand 1 2 1 # shift 7 +8 0 2 0 # 8 +asterisk 0 2 1 # shift 8 +9 9 3 0 # 9 +parenleft 9 3 1 # shift 9 +0 1 3 0 # 0 +parenright 1 3 1 # shift 0 + + + +# Joystick 2 +# +w -2 6 +e -2 7 +r -2 8 +s -2 4 +f -2 5 +x -2 1 +c -2 2 +v -2 3 +space -2 0 + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_gr_us_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_gr_us_pos.vkm new file mode 100644 index 00000000..2e7d8662 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PET/Keymmodore64_ViceGTK_PET_gr_us_pos.vkm @@ -0,0 +1,381 @@ +# GTK3-VICE keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro +# Tested with VICE GTK3 v3.4 +# Mapped for compatibility to PET Models with Graphics Keyboards only (2000, 3000, 4000, Non-B models). +# +# PET Graphics Keyboard has only one character and one graphics PETSCII per key. +# Keymmodore uses C= Key to access a layer with PET Keys corresponding to shifted symbols of C-64 Keyboard (!/"/#/$/%/&/'/(/)/[/]//?) so you have to hold C= for those keys. +# You can access PET graphics PETSCII of those keys by pressing Shift and/or C=. Graphics PETSCII will match the the original PET Graphics Keyboard layout (not labeled in C64). +# +# Graphics PETSCII set of PET and C-64 are the same so there is no missing graphics PETSCII codes. They just have been redistributed to match C-64 Keyboard. +# ANY left C-64 labeled Graphics PETSCII works using C= Key thanks to being remapped by Keymmodore-64. +# ANY right C-64 labeled Graphics PETSCII works using Shift keys thanks to being remapped by VICE (this file). +# +# OFF/REVERSE key is mapped to CTRL (Control) Key. +# Backslash Key is mapped to £ (Pound) Key. +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 256 key is used for an alternative keyboard mapping +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# + +# this is a PET graphics keyboard mapping (positional) + +# +# Graphics keyboard matrix: +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 | ! | # | % | & | ( | <-- | home |crsr rgt| +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 | " | $ | ' | \ | ) |--------|crsr dwn| del | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | q | e | t | u | o | ^ | 7 | 9 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | w | r | y | i | p |--------| 8 | / | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | a | d | g | j | l |--------| 4 | 6 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | s | f | h | k | : |--------| 5 | * | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 | z | c | b | m | ; | return | 1 | 3 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 | x | v | n | , | ? |--------| 2 | + | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 8 |l shift | @ | ] |--------| > |r shift | 0 | - | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 9 | rvs on | [ | space | < | stop |--------| . | = | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +# The original gfx keyboard reflects the matrix perfectly: +# +# ! " # $ % ' & \ ( ) <- ^s ^q ^] ^t +# q w e r t y u i o p ^ 7 8 9 / +# a s d f g h j k l : ^m 4 5 6 * +# z x c v b n m , ; ? ^m 1 2 3 + +# LS ^r @ [ ] SPACE < > ^c RS 0 . - = +# +# http://www.6502.org/users/andre/petindex/keyboards.html + +!CLEAR +!LSHIFT 8 0 +!RSHIFT 8 5 +!VSHIFT RSHIFT +!SHIFTL LSHIFT + + +###### Same Keys than C-64 Keyboard ####### + +# RUN/STOP +Escape 9 4 8 + +# CLR/HOME +Home 0 6 8 + +# Right/Left Cursor +Right 0 7 8 + +#Down/Right Cursor +Down 1 6 8 + +# INST/DEL. (Keymmodore maps both INST/DEL and RESTORE the same because there is no RESTORE Key in PET Keyboards). +BackSpace 1 7 0 + +# SHIFT +Shift_L 8 0 2 +Shift_R 8 5 4 + +# ENTER +Return 6 5 8 + +# Spacebar +space 9 2 8 + +# Arrow Up (Only key with one PETSCII and identical function than C64) +Delete 2 5 8 + +# Arrow Left +dead_grave 0 5 0 +grave 0 5 0 + +# Equals (=) +backslash 9 7 0 +bar 9 7 1 + +#### (Scattered) Symbol Keys "merged" again into C-64 Keys with no PETSCII + + +#Colon (:) and Brace Left ([) +semicolon 5 4 0 +colon 5 4 1 +KP_Subtract 9 1 8 /* Numpad - -> [ */ + +# Semicolon (;) and Brace Right (]) +dead_acute 6 4 0 +apostrophe 6 4 0 +dead_diaeresis 6 4 1 +quotedbl 6 4 1 +KP_Add 8 2 8 /* Numpad + -> ] */ + +# Comma (,) and Less(<) +comma 7 3 0 +less 7 3 1 +Page_Up 9 3 8 /* PgUp -> < */ + +# Period (.) and Greater (>) +period 9 6 0 +greater 9 6 1 +Page_Down 8 4 8 /* PgDown -> > */ + +# Slash (/) and Question (?) +slash 3 7 0 +question 3 7 1 +KP_Divide 7 4 8 /* Numpad / -> ? */ + +#### (Scattered) Symbols and Numbers "merged" again into C-64 Number Keys + +1 6 6 0 +exclam 6 6 1 +F1 0 0 8 +2 7 6 0 +at 7 6 1 +F2 1 0 8 +3 6 7 0 +numbersign 6 7 1 +F3 0 1 8 +4 4 6 0 +dollar 4 6 1 +F4 1 1 8 +5 5 6 0 +percent 5 6 1 +F5 0 2 8 +6 4 7 0 +dead_circumflex 4 7 1 +asciicircum 4 7 1 +F6 0 3 8 +7 2 6 0 +ampersand 2 6 1 +Up 1 2 8 +8 3 6 0 +asterisk 3 6 1 +Left 0 4 8 +9 2 7 0 +parenleft 2 7 1 +F9 1 4 8 +0 8 6 0 +parenright 8 6 1 + +###### Keys not present in C64 keyboard ###### + +# Backslash (\) (Using Pound (£) Key in C64 Keyboard) +Tab 1 3 0 +ISO_Left_Tab 1 4 1 + +# OFF / RVS (Using CTRL key in C64 Keyboard) +Insert 9 0 8 + + +###### Keys matching C64 keyboard having one character and two PETSCII ###### +# Right PETSCII with any Shift Key. +# Left PETSCII with Commodore Key. +# PETSCII are remapped to match C64 Keyboard. + + +# Plus (+) +minus 7 7 0 +underscore 9 1 1 + + +# Minus (-) +equal 8 7 0 +plus 8 2 1 +KP_Multiply 1 3 8 /* Numpad * -> \ PETSCII */ + + +# Multiply (*) +bracketright 5 7 0 +braceright 8 1 1 +dead_perispomeni 0 5 1 +asciitilde 0 5 1 + +# At (@) +bracketleft 8 1 0 +braceleft 5 4 1 + + +###### Letter Keys ###### +# Right PETSCII with any Shift Key. +# Left PETSCII with Commodore Key. +# PETSCII are remapped to match C64 Keyboard. + +# Q Key +q 2 0 0 +Q 2 0 1 +F10 7 7 1 + +# W Key +w 3 0 0 +W 3 0 1 + + +# E Key +e 2 1 0 +E 2 1 1 + + +# R Key +r 3 1 0 +R 3 1 1 + +# T Key +t 2 2 0 +T 2 2 1 + + +# Y Key +y 3 2 0 +Y 3 2 1 + + +# U Key +u 2 3 0 +U 2 3 1 + + +# I KEY +i 3 3 0 +I 3 3 1 + + +# O Key +o 2 4 0 +O 2 4 1 + + +#P Key +p 3 4 0 +P 3 4 1 + + +# A Key +a 4 0 0 +A 4 0 1 + + +# S Key +s 5 0 0 +S 5 0 1 + + + +# D Key +d 4 1 8 +D 4 1 1 + + +# F Key +f 5 1 0 +F 5 1 1 + + +# G Key +g 4 2 0 +G 4 2 1 + + +# H Key +h 5 2 0 +H 5 2 1 + + +# J Key +j 4 3 0 +J 4 3 1 + + +# K Key +k 5 3 0 +K 5 3 1 + + +# L Key +l 4 4 0 +L 4 4 1 + + +# Z Key +z 6 0 0 +Z 6 0 1 +F11 8 7 1 + + +# X Key +x 7 0 0 +X 7 0 1 + + +# C Key +c 6 1 0 +C 6 1 1 + + +# V Key +v 7 1 0 +V 7 1 1 + + +# B Key +b 6 2 0 +B 6 2 1 + + +# N Key +n 7 2 0 +N 7 2 1 +Alt_L 5 7 1 + +# M Key +m 6 3 0 +M 6 3 1 + + +# joystick keymap A (port 1) +KP_8 -1 7 /* NumPad 8 -> UP */ +KP_2 -1 2 /* NumPad 2 -> DOWN */ +KP_4 -1 4 /* NumPad 4 -> LEFT */ +KP_6 -1 5 /* NumPad 6 -> RIGHT */ +KP_0 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +KP_7 -2 7 /* NumPad 7 -> UP */ +KP_3 -2 2 /* NumPad 3 -> DOWN */ +KP_1 -2 4 /* NumPad 1 -> LEFT */ +KP_9 -2 5 /* NumPad 9 -> RIGHT */ +KP_Decimal -2 0 /* NumPad . -> FIRE */ diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PLUS4/Keymmodore64_VICEGTK_PLUS4_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PLUS4/Keymmodore64_VICEGTK_PLUS4_pos.vkm new file mode 100644 index 00000000..36fc85fd --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/PLUS4/Keymmodore64_VICEGTK_PLUS4_pos.vkm @@ -0,0 +1,267 @@ +# GTK3-VICE keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro +# Mapped for compatibility to PLUS/4 and C16. +# If C64 keyboard has the same key, function is prefered over position (like CLR/HOME, Equal and Pound Keys). +# The most important differences are: +# Arrow Left is ESCAPE +# Arrow Up Key is Cursor Up +# RESTORE Key is Cursor Left +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. +# +############################################################################# +# +# Commodore 16/116/Plus-4 keyboard matrix: +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 |INST-DEL|RETURN |POUND |HELP-F7 |F1-F4 |F2-F5 |F3-F6 |@ | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 |3 # |W |A |4 $ |Z |S |E |SHIFT | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 |5 % |R |D |6 & |C |F |T |X | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 |7 ' |Y |G |8 ( |B |H |U |V | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 |9 ) |I |J |0 ^ |M |K |O |N | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 |DOWN |P |L |UP |. > |: [ |- |, < | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 |LEFT |* |; ] |RIGHT |ESC |= |+ |/ ? | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 |1 ! |CLR-HOME|CTRL |2 " |SPACE |C= |Q |RUN-STOP| +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +############################################################################# + + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 1 7 +!VSHIFT RSHIFT + + +# Tab = CTRL +Tab 7 2 8 +# Shift + Tab = CTRL +ISO_Left_Tab 7 2 8 + +# Control_L = CBM +Control_L 7 5 8 + +#Backspace = INST/DEL +BackSpace 0 0 8 + +Delete 5 3 8 +Down 5 0 8 +Page_Up 6 0 8 +Right 6 3 8 + +# ESCAPE = RUN/STOP +Escape 7 7 8 + +# Grave = ESCAPE +grave 6 4 8 +asciitilde 6 4 8 +dead_grave 6 4 8 +dead_perispomeni 6 4 8 + +# Insert = Pound +Insert 0 2 8 + + +# Minus and Underscore = Plus +minus 6 6 0 +underscore 6 6 8 + +# Equal and Plus = Minus +equal 5 6 0 +plus 5 6 8 + +# Bracket/Brace Left = At +bracketleft 0 7 8 +braceleft 0 7 8 + +#Bracket/Brace Right = Asterisk +braceright 6 1 8 +bracketright 6 1 8 + +1 7 0 8 +exclam 7 0 8 +2 7 3 8 +at 7 3 8 +3 1 0 8 +numbersign 1 0 8 +4 1 3 8 +dollar 1 3 8 +5 2 0 8 +percent 2 0 8 +6 2 3 8 +dead_circumflex 2 3 8 +asciicircum 2 3 8 +7 3 0 8 +ampersand 3 0 8 +8 3 3 8 +asterisk 3 3 8 +9 4 0 8 +parenleft 4 0 8 +0 4 3 8 +parenright 4 3 8 + +slash 6 7 8 +question 6 7 8 + +backslash 6 5 8 +bar 6 5 8 + +apostrophe 6 2 8 +quotedbl 6 2 8 +dead_acute 6 2 8 +dead_diaeresis 6 2 8 + +colon 5 5 8 +semicolon 5 5 8 + +less 5 7 8 +comma 5 7 8 + +greater 5 4 8 +period 5 4 8 + +parenleft 4 0 8 +parenright 4 3 8 + +F1 0 4 8 +F3 0 5 8 +F5 0 6 8 +F7 0 3 8 +Home 7 1 8 +Return 0 1 8 +Shift_L 1 7 2 +Shift_R 1 7 4 +space 7 4 8 + + +A 1 2 8 +B 3 4 8 +C 2 4 8 +D 2 2 8 +E 1 6 8 +F 2 5 8 +G 3 2 8 +H 3 5 8 +I 4 1 8 +J 4 2 8 +K 4 5 8 +L 5 2 8 +M 4 4 8 +N 4 7 8 +O 4 6 8 +P 5 1 8 +Q 7 6 8 +R 2 1 8 +S 1 5 8 +T 2 6 8 +U 3 6 8 +V 3 7 8 +W 1 1 8 +X 2 7 8 +Y 3 1 8 +Z 1 4 8 +a 1 2 8 +b 3 4 8 +c 2 4 8 +d 2 2 8 +e 1 6 8 +f 2 5 8 +g 3 2 8 +h 3 5 8 +i 4 1 8 +j 4 2 8 +k 4 5 8 +l 5 2 8 +m 4 4 8 +n 4 7 8 +o 4 6 8 +p 5 1 8 +q 7 6 8 +r 2 1 8 +s 1 5 8 +t 2 6 8 +u 3 6 8 +v 3 7 8 +w 1 1 8 +x 2 7 8 +y 3 1 8 +z 1 4 8 + +# joystick keymap A (port 1) +KP_8 -1 7 /* NumPad 8 -> UP */ +KP_2 -1 2 /* NumPad 2 -> DOWN */ +KP_4 -1 4 /* NumPad 4 -> LEFT */ +KP_6 -1 5 /* NumPad 6 -> RIGHT */ +KP_0 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +KP_7 -2 7 /* NumPad 7 -> UP */ +KP_3 -2 2 /* NumPad 3 -> DOWN */ +KP_1 -2 4 /* NumPad 1 -> LEFT */ +KP_9 -2 5 /* NumPad 9 -> RIGHT */ +KP_Decimal -2 0 /* NumPad . -> FIRE */ + + + + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/VIC20/Keymmodore64_VICEGTK_VIC20_pos.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/VIC20/Keymmodore64_VICEGTK_VIC20_pos.vkm new file mode 100644 index 00000000..f385dd01 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_GTK3/VIC20/Keymmodore64_VICEGTK_VIC20_pos.vkm @@ -0,0 +1,270 @@ +# VICE GTK3 based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE GTK3 v3.4 +# Using default positional VICE layout. +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!SHIFTL shiftkey' shift lock key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 shift lock +# 256 key is used for an alternative keyboard mapping +# +# Negative row values: +# 'keysym -1 n' joystick keymap A, direction n +# 'keysym -2 n' joystick keymap B, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# Positional Mapping, US Layout, VIC20, X11 + +# VIC20 Keyboard matrix +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| 1 ! |A_LFT| CTRL| R/S |SPACE| C= | Q | 2 " | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | S_L | Z | S | E | 4 $ | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | X | C | F | T | 6 & | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | V | B | H | U | 8 ( | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | N | M | K | O | 0 | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | , < | . > | : [ | @ | - | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | / ? | S_R | = | A_UP| HOME| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| DEL |Retrn|C_L/R|C_U/D| F1 | F3 | F5 | F7 | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +!CLEAR +!LSHIFT 1 3 +!RSHIFT 6 4 +!VSHIFT RSHIFT + +##################### +# |Bit 0| 1 ! |A_LFT| CTRL| R/S |SPACE| C= | Q | 2 " | + +exclam 0 0 8 +# grave / tilde -> arrow left +asciitilde 0 1 8 +grave 0 1 8 +# Tab = CTRL +Tab 0 2 8 +# Shift + Tab = CTRL +ISO_Left_Tab 0 2 8 +Escape 0 3 8 +space 0 4 8 +# Control_L = CBM +Control_L 0 5 8 +at 0 7 8 + +##################### +# |Bit 1| 3 # | W | A | S_L | Z | S | E | 4 $ | + +numbersign 1 0 8 +Shift_L 1 3 2 +dollar 1 7 8 + +##################### +# |Bit 2| 5 % | R | D | X | C | F | T | 6 & | + +percent 2 0 8 +asciicircum 2 7 8 + +##################### +# |Bit 3| 7 ' | Y | G | V | B | H | U | 8 ( | + +ampersand 3 0 8 +asterisk 3 7 8 + +##################### +# |Bit 4| 9 ) | I | J | N | M | K | O | 0 | + +parenleft 4 0 8 +parenright 4 7 8 + +##################### +# |Bit 5| + | P | L | , < | . > | : [ | @ | - | + +minus 5 0 8 +underscore 5 0 8 +comma 5 3 8 +less 5 3 8 +period 5 4 8 +greater 5 4 8 +colon 5 5 8 +semicolon 5 5 8 +braceleft 5 6 8 +bracketleft 5 6 8 +plus 5 7 8 +equal 5 7 8 + +##################### +# |Bit 6|POUND| * | ; ] | / ? | S_R | = | A_UP| HOME| + +sterling 6 0 8 +Insert 6 0 8 +braceright 6 1 8 +bracketright 6 1 8 +apostrophe 6 2 8 +quotedbl 6 2 8 +question 6 3 8 +slash 6 3 8 +Shift_R 6 4 4 +backslash 6 5 8 +bar 6 5 8 +Delete 6 6 8 +Home 6 7 8 + +##################### +# |Bit 7| DEL |Retrn|C_L/R|C_U/D| F1 | F3 | F5 | F7 | + +BackSpace 7 0 8 +Return 7 1 8 +Right 7 2 8 +Down 7 3 8 +F1 7 4 8 +F3 7 5 8 +F5 7 6 8 +F7 7 7 8 + +##################### +# letters and numbers + +0 4 7 8 +1 0 0 8 +2 0 7 8 +3 1 0 8 +4 1 7 8 +5 2 0 8 +6 2 7 8 +7 3 0 8 +8 3 7 8 +9 4 0 8 +A 1 2 8 +B 3 4 8 +C 2 4 8 +D 2 2 8 +E 1 6 8 +F 2 5 8 +G 3 2 8 +H 3 5 8 +I 4 1 8 +J 4 2 8 +K 4 5 8 +L 5 2 8 +M 4 4 8 +N 4 3 8 +O 4 6 8 +P 5 1 8 +Q 0 6 8 +R 2 1 8 +S 1 5 8 +T 2 6 8 +U 3 6 8 +V 3 3 8 +W 1 1 8 +X 2 3 8 +Y 3 1 8 +Z 1 4 8 +a 1 2 8 +b 3 4 8 +c 2 4 8 +d 2 2 8 +e 1 6 8 +f 2 5 8 +g 3 2 8 +h 3 5 8 +i 4 1 8 +j 4 2 8 +k 4 5 8 +l 5 2 8 +m 4 4 8 +n 4 3 8 +o 4 6 8 +p 5 1 8 +q 0 6 8 +r 2 1 8 +s 1 5 8 +t 2 6 8 +u 3 6 8 +v 3 3 8 +w 1 1 8 +x 2 3 8 +y 3 1 8 +z 1 4 8 + +# Restore key mappings +Page_Up -3 0 + + +# Dead keys support for those using US-International keyboard layout. +dead_circumflex 2 7 8 # & +dead_tilde 0 1 8 # A_LFT <- +dead_grave 0 1 8 # A_LFT <- +dead_acute 6 2 8 # ; +dead_diaeresis 6 2 8 # ] + +# joystick keymap A (port 1) +KP_8 -1 7 /* NumPad 8 -> UP */ +KP_2 -1 2 /* NumPad 2 -> DOWN */ +KP_4 -1 4 /* NumPad 4 -> LEFT */ +KP_6 -1 5 /* NumPad 6 -> RIGHT */ +KP_0 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +KP_7 -2 7 /* NumPad 7 -> UP */ +KP_3 -2 2 /* NumPad 3 -> DOWN */ +KP_1 -2 4 /* NumPad 1 -> LEFT */ +KP_9 -2 5 /* NumPad 9 -> RIGHT */ +KP_Decimal -2 0 /* NumPad . -> FIRE */ diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C128/Keymmodore64_ViceSDL_C128.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C128/Keymmodore64_ViceSDL_C128.vkm new file mode 100644 index 00000000..ecbf4706 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C128/Keymmodore64_ViceSDL_C128.vkm @@ -0,0 +1,217 @@ +# VICE SDL based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Mapped for positional compatibility to C-128 Keyboards. +# Based on C64 Positional Layout. +# Keys not present in C-64 (like NumPad Keys, ESC, TAB) are accessed with Right Shift Key. +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# + +# C128 Keyboard matrix +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| +# +------+-----+-----+-----+-----+-----+-----+-----+-----+ + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 6 4 +!VSHIFT RSHIFT + +# 40/80 column key +287 -4 0 /* F6 -> 40/80 DISPLAY */ + +# CAPS LOCK (ASCII/DIN) key +291 -4 1 /* F10 -> CAPS LOCK */ + +# RESTORE key +280 -3 0 + +##################### +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| + +8 0 0 8 +13 0 1 8 +275 0 2 8 +282 0 4 8 +284 0 5 8 +286 0 6 8 +288 0 3 8 +274 0 7 8 + +##################### +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | + +304 1 7 2 + +##################### +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | + +45 5 0 8 +61 5 3 8 +46 5 4 8 +59 5 5 8 +91 5 6 8 +44 5 7 8 + +##################### +# |Bit 6| POUND | * | ; ] | HOME| S_R | = | A_UP| / ? | + +277 6 0 8 +93 6 1 8 +39 6 2 8 +278 6 3 8 +303 6 4 4 +92 6 5 8 +127 6 6 8 +47 6 7 8 + + +##################### +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | + +96 7 1 8 # Arrow_LFT +9 7 2 8 /* TAB -> Control */ +32 7 4 8 # Space Bar +306 7 5 8 # CBM Key +27 7 7 8 # RUN/STOP + +##################### +# |Bit 8 |HELP | KP 8| KP 5| TAB | KP 2| KP 4| KP 7| KP 1| + +283 8 0 8 /* F2 -> HELP */ +264 8 1 8 +261 8 2 8 +292 8 3 8 /* F11 -> TAB */ +258 8 4 8 +260 8 5 8 +263 8 6 8 +257 8 7 8 + +##################### +# |Bit 9 | ESC | KP +| KP -| LF |KP CR| KP 6| KP 9| KP 3| + +268 9 0 8 +270 9 1 8 +269 9 2 8 +285 9 3 8 /* F4 -> LINE FEED */ +271 9 4 8 +262 9 5 8 +265 9 6 8 +259 9 7 8 + +##################### +# |Bit 10| ALT | KP 0| KP .|A.UP |A.DWN|A.LFT|A.RGT|NOSCR| + +290 10 0 8 +256 10 1 8 +266 10 2 8 +273 10 3 8 +276 10 5 8 +267 10 7 8 /* Numpad / -> NO SCROLL */ + +# Numbers +49 7 0 8 /* 1 -> 1 */ +50 7 3 8 /* 2 -> 2 */ +51 1 0 8 /* 3 -> 3 */ +52 1 3 8 /* 4 -> 4 */ +53 2 0 8 /* 5 -> 5 */ +54 2 3 8 /* 6 -> 6 */ +55 3 0 8 /* 7 -> 7 */ +56 3 3 8 /* 8 -> 8 */ +57 4 0 8 /* 9 -> 9 */ +48 4 3 8 /* 0 -> 0 */ + +# Letters +113 7 6 8 /* Q -> Q */ +119 1 1 8 /* W -> W */ +101 1 6 8 /* E -> E */ +114 2 1 8 /* R -> R */ +116 2 6 8 /* T -> T */ +121 3 1 8 /* Y -> Y */ +117 3 6 8 /* U -> U */ +105 4 1 8 /* I -> I */ +111 4 6 8 /* O -> O */ +112 5 1 8 /* P -> P */ +97 1 2 8 /* A -> A */ +115 1 5 8 /* S -> S */ +100 2 2 8 /* D -> D */ +102 2 5 8 /* F -> F */ +103 3 2 8 /* G -> G */ +104 3 5 8 /* H -> H */ +106 4 2 8 /* J -> J */ +107 4 5 8 /* K -> K */ +108 5 2 8 /* L -> L */ +122 1 4 8 /* Z -> Z */ +120 2 7 8 /* X -> X */ +99 2 4 8 /* C -> C */ +118 3 7 8 /* V -> V */ +98 3 4 8 /* B -> B */ +110 4 7 8 /* N -> N */ +109 4 4 8 /* M -> M */ + + + + + + + + + + + + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C64/Keymmodore64_ViceSDL_C64.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C64/Keymmodore64_ViceSDL_C64.vkm new file mode 100644 index 00000000..9cbbba19 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/C64/Keymmodore64_ViceSDL_C64.vkm @@ -0,0 +1,184 @@ +# VICE SDL based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Using default positional VICE layout. +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!SHIFTL shiftkey' shift lock key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 shift lock +# 256 key is used for an alternative keyboard mapping +# +# Negative row values: +# 'keysym -1 n' joystick keymap A, direction n +# 'keysym -2 n' joystick keymap B, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# C64 keyboard matrix: +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| DEL |Retrn|C_L/R| F7 | F1 | F3 | F5 |C_U/D| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | 4 $ | Z | S | E | S_L | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | 6 & | C | F | T | X | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | 8 ( | B | H | U | V | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | 0 | M | K | O | N | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | - | . > | : [ | @ | , < | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | HOME| S_R | = | A_UP| / ? | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| 1 ! |A_LFT| CTRL| 2 " |SPACE| C= | Q | R/S | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 6 4 +!VSHIFT RSHIFT +!SHIFTL LSHIFT + +27 7 7 8 /* ESC -> Run/Stop */ +49 7 0 8 /* 1 -> 1 */ +50 7 3 8 /* 2 -> 2 */ +51 1 0 8 /* 3 -> 3 */ +52 1 3 8 /* 4 -> 4 */ +53 2 0 8 /* 5 -> 5 */ +54 2 3 8 /* 6 -> 6 */ +55 3 0 8 /* 7 -> 7 */ +56 3 3 8 /* 8 -> 8 */ +57 4 0 8 /* 9 -> 9 */ +48 4 3 8 /* 0 -> 0 */ +45 5 0 8 /* Minus -> Plus */ +61 5 3 8 /* Equal -> Minus */ +8 0 0 8 /* Backspace -> Del */ +9 7 2 8 /* TAB -> Ctrl */ +113 7 6 8 /* Q -> Q */ +119 1 1 8 /* W -> W */ +101 1 6 8 /* E -> E */ +114 2 1 8 /* R -> R */ +116 2 6 8 /* T -> T */ +121 3 1 8 /* Y -> Y */ +117 3 6 8 /* U -> U */ +105 4 1 8 /* I -> I */ +111 4 6 8 /* O -> O */ +112 5 1 8 /* P -> P */ +91 5 6 8 /* [ -> @ */ +93 6 1 8 /* ] -> * */ +13 0 1 8 /* Return -> Return */ +306 7 5 8 /* Left Ctrl -> CBM */ +97 1 2 8 /* A -> A */ +115 1 5 8 /* S -> S */ +100 2 2 8 /* D -> D */ +102 2 5 8 /* F -> F */ +103 3 2 8 /* G -> G */ +104 3 5 8 /* H -> H */ +106 4 2 8 /* J -> J */ +107 4 5 8 /* K -> K */ +108 5 2 8 /* L -> L */ +59 5 5 8 /* ; -> : */ +39 6 2 8 /* ' -> ; */ +96 7 1 8 /* ` -> Left Arrow */ +92 6 5 8 /* \ -> = */ +304 1 7 2 /* Left Shift -> Left Shift */ +301 1 7 64 /* Caps Lock -> Shift Lock */ +122 1 4 8 /* Z -> Z */ +120 2 7 8 /* X -> X */ +99 2 4 8 /* C -> C */ +118 3 7 8 /* V -> V */ +98 3 4 8 /* B -> B */ +110 4 7 8 /* N -> N */ +109 4 4 8 /* M -> M */ +44 5 7 8 /* , -> , */ +46 5 4 8 /* . -> . */ +47 6 7 8 /* / -> / */ +303 6 4 4 /* Right Shift -> Right Shift */ +32 7 4 8 /* Space -> Space */ +282 0 4 8 /* F1 -> F1 */ +283 0 4 1 /* F2 -> F2 */ +284 0 5 8 /* F3 -> F3 */ +285 0 5 1 /* F4 -> F4 */ +286 0 6 8 /* F5 -> F5 */ +287 0 6 1 /* F6 -> F6 */ +288 0 3 8 /* F7 -> F7 */ +289 0 3 1 /* F8 -> F8 */ +278 6 3 8 /* Home -> CLR/HOME */ +273 0 7 1 /* Up -> CRSR UP */ +276 0 2 1 /* Left -> CRSR LEFT */ +275 0 2 8 /* Right -> CRSR RIGHT */ +274 0 7 8 /* Down -> CRSR DOWN */ +277 6 0 8 /* Ins -> Pound */ +127 6 6 8 /* Del -> Up Arrow */ + +# Restore key mappings +280 -3 0 + +# joystick keymap A (port 1) +264 -1 7 /* NumPad 8 -> UP */ +258 -1 2 /* NumPad 2 -> DOWN */ +260 -1 4 /* NumPad 4 -> LEFT */ +262 -1 5 /* NumPad 6 -> RIGHT */ +256 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +263 -2 7 /* NumPad 7 -> UP */ +259 -2 2 /* NumPad 3 -> DOWN */ +257 -2 4 /* NumPad 1 -> LEFT */ +265 -2 5 /* NumPad 9 -> RIGHT */ +266 -2 0 /* NumPad . -> FIRE */ + + + + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_bu_us.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_bu_us.vkm new file mode 100644 index 00000000..9ca46eb0 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_bu_us.vkm @@ -0,0 +1,239 @@ +# VICE SDL keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Mapped for compatibility to PET Models with Business Keyboards only (3000B, 4000B and 8000 models). +# Based on C64 Positional Layout. +# +# ESCAPE is mapped to F1 Key. +# OFF/REVERSE is mapped to F3 Key. +# REPEAT is mapped to F5 Key. +# Backslash is mapped to £ (Pound) Key. +# TAB is mapped to CTRL Key. +# NumericPad Keys (1 to 0 and Dot) and Brackets ([/]) are accessed by pressing Commodore Key (C=). +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# + +# this is a PET business (uk) keyboard mapping (symbolic) + +# Business (UK) keyboard matrix: +# +# Keys starting with 'KP' are on the number pad. +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 | 2 | 5 | 8 | - | KP8 |crsr rgt| ^N | . | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 | 1 | 4 | 7 | 0 | KP7 | ^ |--------| KP9 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | escape | s | f | h | ] | k | ; | KP5 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | a | d | g | j | return | l | @ | KP6 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | tab | w | r | y | \ | i | p | del | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | q | e | t | u |crsr dwn| o | [ | KP4 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 |l shift | c | b | . | KP. | ^Y |r shift | KP3 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 | z | v | n | , | KP0 | ^O | repeat | KP2 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 8 | RVS | x | space | m | home | ^U | / | KP1 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 9 | <-- | 3 | 6 | 9 |runstop | : |--------| ^V | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +# ^N = both shifts + 2 +# ^Y = left shift + TAB + I +# ^O = Z + A + L +# ^U = RVS + A + L +# ^V = TAB + <- + DEL +# +# Business (US) matrix (differences to UK) +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | | | | | ; | | \ | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | | | | | | | [ | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | | | | | @ | | | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | | | | | | | ] | | +# +--------+--------+--------+--------+--------+--------+--------+--------+ + +!CLEAR +!LSHIFT 6 0 +!RSHIFT 6 6 +!VSHIFT RSHIFT + + +###### Same Keys than C-64 Keyboard + +# RUN/STOP +27 9 4 8 + +# CLR/HOME +278 8 4 8 + +# LEFT/RIGHT +275 0 5 8 + +# UP/DOWN +274 5 4 8 + +#INST/DEL +# Keymmodore maps both INST/DEL and RESTORE keys the same because there is no RESTORE Key in PET Keyboards. +8 4 7 8 + +# SHIFT +304 6 0 2 +303 6 6 4 + +# ENTER +13 3 4 8 + +# Arrow Up +127 1 5 8 + +# Arrow Left +96 9 0 8 + +# @ +91 3 6 8 + +# /. +46 6 3 8 + +# ?// +47 8 6 8 + +# Space Bar +32 8 2 8 + + + +##### Keys of C-64 real Keyboard non present in PET Business Keyboard + +# + (Plus) +45 2 6 1 + +# - (Minus) +61 0 3 16 + +# * (Asterisk) +93 9 5 1 + +# \ (Using Pound Key) +277 4 4 16 + +###### Keys of real PET Business Keyboard not present in C-64 Keyboard + +# ESCAPE <-- F1 +282 2 0 8 + +# OFF/RVS <-- F3 +284 8 0 8 + +# REPEAT <-- F5 +286 7 6 8 + +# TAB +9 4 0 8 + +# =/- (only =) +92 0 3 1 + +# */: (only :) +59 9 5 0 +# [ <--- F10 (mapped to F10 to be used with C= Key) +291 5 6 16 + +# +/; (only ;) +39 2 6 0 +# ] <--- F11 (mapped to F11 to be used with C= Key) +292 2 4 16 + +##### Numeric Pad Keys(With C= Key) +256 7 4 8 +257 8 7 8 +258 7 7 8 +259 6 7 8 +260 5 7 8 +261 2 7 8 +262 3 7 8 +263 1 4 8 +264 0 4 8 +265 1 7 8 +266 6 4 8 + +##### Numbers Key +49 1 0 8 /* 1 -> 1 */ +50 0 0 8 /* 2 -> 2 */ +51 9 1 8 /* 3 -> 3 */ +52 1 1 8 /* 4 -> 4 */ +53 0 1 8 /* 5 -> 5 */ +54 9 2 8 /* 6 -> 6 */ +55 1 2 8 /* 7 -> 7 */ +56 0 2 8 /* 8 -> 8 */ +57 9 3 8 /* 9 -> 9 */ +48 1 3 8 /* 0 -> 0 */ + + + +##### Letter Keys +113 5 0 8 /* Q -> Q */ +119 4 1 8 /* W -> W */ +101 5 1 8 /* E -> E */ +114 4 2 8 /* R -> R */ +116 5 2 8 /* T -> T */ +121 4 3 8 /* Y -> Y */ +117 5 3 8 /* U -> U */ +105 4 5 8 /* I -> I */ +111 5 5 8 /* O -> O */ +112 4 6 8 /* P -> P */ +97 3 0 8 /* A -> A */ +115 2 1 8 /* S -> S */ +100 3 1 8 /* D -> D */ +102 2 2 8 /* F -> F */ +103 3 2 8 /* G -> G */ +104 2 3 8 /* H -> H */ +106 3 3 8 /* J -> J */ +107 2 5 8 /* K -> K */ +108 3 5 8 /* L -> L */ +122 7 0 8 /* Z -> Z */ +120 8 1 8 /* X -> X */ +99 6 1 8 /* C -> C */ +118 7 1 8 /* V -> V */ +98 6 2 8 /* B -> B */ +110 7 2 8 /* N -> N */ +109 8 3 8 /* M -> M */ + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_gr_us.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_gr_us.vkm new file mode 100644 index 00000000..48d438b7 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PET/Keymmodore64_ViceSDL_PET_gr_us.vkm @@ -0,0 +1,256 @@ +# VICE SDL keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Mapped for compatibility to PET Models with Graphics Keyboards only (2000, 3000, 4000, Non-B models). +# Based on C64 Positional Layout. +# +# PET Graphics Keyboard has only one character and one graphics PETSCII per key. +# Keymmodore uses C= Key to access a layer with PET Keys corresponding to shifted symbols of C-64 Keyboard (!/"/#/$/%/&/'/(/)/[/]//?) so you have to hold C= for those keys. +# You can access PET graphics PETSCII of those keys by pressing Shift and/or C=. Graphics PETSCII will match the the original PET Graphics Keyboard layout (not labeled in C64). +# +# Graphics PETSCII set of PET and C-64 are the same so there is no missing graphics PETSCII codes. They just have been redistributed to match C-64 Keyboard. +# ANY left C-64 labeled Graphics PETSCII works using C= Key thanks to being remapped by Keymmodore-64. +# ANY right C-64 labeled Graphics PETSCII works using Shift keys thanks to being remapped by VICE (this file). +# +# OFF/REVERSE key is mapped to CTRL (Control) Key. +# Backslash Key is mapped to £ (Pound) Key. +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# +# Negative row values: +# 'keysym -1 n' joystick #1, direction n +# 'keysym -2 n' joystick #2, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# + +# this is a PET graphics keyboard mapping (symbolic) + +# +# Graphics keyboard matrix: +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 | ! | # | % | & | ( | <-- | home |crsr rgt| +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 | " | $ | ' | \ | ) |--------|crsr dwn| del | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 | q | e | t | u | o | ^ | 7 | 9 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 | w | r | y | i | p |--------| 8 | / | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 | a | d | g | j | l |--------| 4 | 6 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 | s | f | h | k | : |--------| 5 | * | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 | z | c | b | m | ; | return | 1 | 3 | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 | x | v | n | , | ? |--------| 2 | + | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 8 |l shift | @ | ] |--------| > |r shift | 0 | - | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 9 | rvs on | [ | space | < | stop |--------| . | = | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +# The original gfx keyboard reflects the matrix perfectly: +# +# ! " # $ % ' & \ ( ) <- ^s ^q ^] ^t +# q w e r t y u i o p ^ 7 8 9 / +# a s d f g h j k l : ^m 4 5 6 * +# z x c v b n m , ; ? ^m 1 2 3 + +# LS ^r @ [ ] SPACE < > ^c RS 0 . - = +# +# http://www.6502.org/users/andre/petindex/keyboards.html + +!CLEAR +!LSHIFT 8 0 +!RSHIFT 8 5 +!VSHIFT RSHIFT + +###### Same Keys than C-64 Keyboard + +# RUN/STOP +27 9 4 8 + +# CLR/HOME +278 0 6 8 + +# LEFT/RIGHT +275 0 7 8 + +# UP/DOWN +274 1 6 8 + +#INST/DEL +# Keymmodore maps both INST/DEL and RESTORE keys the same because there is no RESTORE Key in PET Keyboards. +8 1 7 8 + +# SHIFT +304 8 0 2 +303 8 5 4 + +# ENTER +13 6 5 8 + +# Arrow Up +127 2 5 8 + +# Arrow Left +96 0 5 8 + +# @ +91 8 1 32 +91 5 4 1 + +# Space Bar +32 9 2 8 + +# + (Plus) +45 7 7 32 +45 9 1 1 + +# - (Minus) +61 8 7 32 +61 8 2 1 +268 1 3 8 /* Numpad * -> \ PETSCII */ + + +# = (Equals) +92 9 7 8 + +# \ (Using Pound Key) +9 1 3 32 +9 1 4 1 + +# * (Asterisk) +93 5 7 32 +93 8 1 1 + +# OFF/RVS +#9 9 0 8 +277 9 0 8 + +##### Combined Keys + +# , (Comma) +44 7 3 8 +# < (Less) +280 9 3 8 /* PgUp -> < */ + + +# . (Dot) +46 9 6 8 +# > (Greater) +281 8 4 8 /* PgDown -> > */ + + +# / (Slash) +47 3 7 8 +# ? (Question) +267 7 4 8 /* Numpad / -> ? */ + +# : (Colon) +59 5 4 8 +# [ (Left Bracket) +269 9 1 8 /* Numpad - -> [ */ + +# ; (SemiColon) +39 6 4 8 +# ] (Right Bracket) +270 8 2 8 /* Numpad + -> ] */ + + +#### Numbers and Symbols (1st Row) +49 6 6 8 /* 1 -> 1 */ +282 0 0 8 /* F1 -> ! */ +50 7 6 8 /* 2 -> 2 */ +283 1 0 8 /* F2 -> " */ +51 6 7 8 /* 3 -> 3 */ +284 0 1 8 /* F3 -> # */ +52 4 6 8 /* 4 -> 4 */ +285 1 1 8 /* F4 -> $ */ +53 5 6 8 /* 5 -> 5 */ +286 0 2 8 /* F5 -> % */ +54 4 7 8 /* 6 -> 6 */ +287 0 3 8 /* F6 -> & */ +55 2 6 8 /* 7 -> 7 */ +273 1 2 8 /* Up -> ' */ +56 3 6 8 /* 8 -> 8 */ +276 0 4 8 /* Left -> ( */ +57 2 7 8 /* 9 -> 9 */ +290 1 4 8 /* F9 -> ) */ +48 8 6 8 /* 0 -> 0 */ + +###### Letter Keys ###### +# Right PETSCII with any Shift Key. +# Left PETSCII with Commodore Key. +# PETSCII are remapped to match C64 Keyboard. + +113 2 0 8 /* Q -> Q */ +291 7 7 8 /* F10 -> + PETSCII */ +119 3 0 8 /* W -> W */ +101 2 1 8 /* E -> E */ +114 3 1 8 /* R -> R */ +116 2 2 8 /* T -> T */ +121 3 2 8 /* Y -> Y */ +117 2 3 8 /* U -> U */ +105 3 3 8 /* I -> I */ +111 2 4 8 /* O -> O */ +112 3 4 8 /* P -> P */ + +97 4 0 8 /* A -> A */ +115 5 0 8 /* S -> S */ +100 4 1 8 /* D -> D */ +102 5 1 8 /* F -> F */ +103 4 2 8 /* G -> G */ +104 5 2 8 /* H -> H */ +106 4 3 8 /* J -> J */ +107 5 3 8 /* K -> K */ +108 4 4 8 /* L -> L */ + + +122 6 0 8 /* Z -> Z */ +292 8 7 8 /* F11 -> - PETSCII */ +120 7 0 8 /* X -> X */ +99 6 1 8 /* C -> C */ +118 7 1 8 /* V -> V */ +98 6 2 8 /* B -> B */ +110 7 2 8 /* N -> N */ +308 5 7 1 /* Left Alt -> * PETSCII */ +109 6 3 8 /* M -> M */ + +# joystick keymap A (port 1) +264 -1 7 /* NumPad 8 -> UP */ +258 -1 2 /* NumPad 2 -> DOWN */ +260 -1 4 /* NumPad 4 -> LEFT */ +262 -1 5 /* NumPad 6 -> RIGHT */ +256 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +263 -2 7 /* NumPad 7 -> UP */ +259 -2 2 /* NumPad 3 -> DOWN */ +257 -2 4 /* NumPad 1 -> LEFT */ +265 -2 5 /* NumPad 9 -> RIGHT */ +266 -2 0 /* NumPad . -> FIRE */ diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PLUS4/Keymmodore64_Vice SDL_Plus4.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PLUS4/Keymmodore64_Vice SDL_Plus4.vkm new file mode 100644 index 00000000..205df078 --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/PLUS4/Keymmodore64_Vice SDL_Plus4.vkm @@ -0,0 +1,197 @@ +# VICE SDL based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Mapped for positional compatibility with 264 Computers Series: Plus/4, Commodore-16 and Commodore-116 Keyboards. +# Based on C64 Positional Layout, however some keys change position in order to be easier to use and remember. +# The relevant changes are: +# ESCAPE is mapped to Left Arrow Key. +# Cursor-Up is mapped to C64 Up-Arrow Key (C16/Plus-4 Up-Arrow is actually Shift+0). +# Cursor-Left is mapped to C64 RESTORE Key (C16/Plus-4 CLEAR/HOME Key moves to C64 CLEAR/HOME key). +# Cursor-Down is mapped to C64 Up/Down Cursor Key (It works only Down regardless Shift pressed or not, like the real C16/Plus-4 Key). +# Cursor-Right is mapped to C64 Left/Right Cursor Key (It works only Right regardless Shift pressed or not, like the real C16/Plus-4 Key). +# +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal lines have 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!SHIFTL shiftkey' shift lock key (RSHIFT or LSHIFT) +# '!LCTRL row col' left control keyboard row/column +# '!VCTRL ctrlkey' virtual control key (LCTRL) +# '!LCBM row col' left CBM keyboard row/column +# '!VCBM cbmkey' virtual CBM key (LCBM) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values (as a sum): +# 0 key is not shifted for this keysym/scancode +# 1 key is combined with shift for this keysym/scancode +# 2 key is left shift on emulated machine +# 4 key is right shift on emulated machine +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 key is shift-lock on emulated machine +# 128 shift modifier required on host +# 256 key is used for an alternative keyboard mapping +# 512 alt-r (alt-gr) modifier required on host +# 1024 ctrl modifier required on host +# 2048 key is combined with cbm for this keysym/scancode +# 4096 key is combined with ctrl for this keysym/scancode +# 8192 key is (left) cbm on emulated machine +# 16384 key is (left) ctrl on emulated machine +# +# to migrate older keymaps and use the CBM and/or CTRL related features: +# +# - define !LCTRL, !VCTRL, !LCBM, !VCBM +# - add 'key is (left) cbm/ctrl on emulated machine' flags to +# all keys that map to the cbm or ctrl key respectively. +# +# after that the virtual cbm/ctrl flags and requiring host modifiers +# should work as expected. keep an eye on the error messages. +# +# Negative row values: +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger-spaced key is used, +# it uses the upper-left-most key value. + +# Symbolic Mapping, US Layout, Plus4, SDL + +############################################################################# +# +# Commodore 16/116/Plus-4 keyboard matrix: +# +# 0 1 2 3 4 5 6 7 +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 0 |INST/DEL|RETURN |POUND |F7/HELP |F4/F1 |F5/F2 |F6/F3 |@ | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 1 |3 # |W |A |4 $ |Z |S |E | SHIFTs | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 2 |5 % |R |D |6 & |C |F |T |X | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 3 |7 ' |Y |G |8 ( |B |H |U |V | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 4 |9 ) |I |J |0 ^ |M |K |O |N | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 5 |DOWN |P |L |UP |. > |: [ |- |, < | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 6 |LEFT |* |; ] |RIGHT |ESC |= |+ |/ ? | +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# 7 |1 ! |CLR/HOME| CTRLs |2 " |SPACE |C= |Q |RUN/STOP| +# +--------+--------+--------+--------+--------+--------+--------+--------+ +# +############################################################################# + +!CLEAR +!LSHIFT 1 7 +!RSHIFT 1 7 +!VSHIFT RSHIFT +!SHIFTL LSHIFT +!LCBM 7 5 +!VCBM LCBM +!LCTRL 7 2 +!VCTRL LCTRL + +27 7 7 8 /* ESC -> Run/Stop */ +49 7 0 8 /* 1 -> 1 */ +50 7 3 8 /* 2 -> 2 */ +51 1 0 8 /* 3 -> 3 */ +52 1 3 8 /* 4 -> 4 */ +53 2 0 8 /* 5 -> 5 */ +54 2 3 8 /* 6 -> 6 */ +55 3 0 8 /* 7 -> 7 */ +56 3 3 8 /* 8 -> 8 */ +57 4 0 8 /* 9 -> 9 */ +48 4 3 8 /* 0 -> 0 */ +45 6 6 8 /* Minus -> Plus */ +61 5 6 8 /* Equal -> Minus */ +8 0 0 8 /* Backspace -> Del */ +9 7 2 16392 /* TAB -> Ctrl */ +113 7 6 8 /* Q -> Q */ +119 1 1 8 /* W -> W */ +101 1 6 8 /* E -> E */ +114 2 1 8 /* R -> R */ +116 2 6 8 /* T -> T */ +121 3 1 8 /* Y -> Y */ +117 3 6 8 /* U -> U */ +105 4 1 8 /* I -> I */ +111 4 6 8 /* O -> O */ +112 5 1 8 /* P -> P */ +91 0 7 8 /* [ -> @ */ +93 6 1 8 /* ] -> * (Asterisk) */ +13 0 1 8 /* Return -> Return */ +306 7 5 8200 /* Left Ctrl -> CBM */ +97 1 2 8 /* A -> A */ +115 1 5 8 /* S -> S */ +100 2 2 8 /* D -> D */ +102 2 5 8 /* F -> F */ +103 3 2 8 /* G -> G */ +104 3 5 8 /* H -> H */ +106 4 2 8 /* J -> J */ +107 4 5 8 /* K -> K */ +108 5 2 8 /* L -> L */ +59 5 5 8 /* ; -> : */ +39 6 2 8 /* ' -> ; */ +96 6 4 8 /* ` -> Esc -> C64 Arrow-Left Key */ +92 6 5 8 /* \ -> Equal */ +301 1 7 64 /* Caps Lock -> Shift Lock */ +304 1 7 2 /* Left Shift -> Left Shift */ +122 1 4 8 /* Z -> Z */ +120 2 7 8 /* X -> X */ +99 2 4 8 /* C -> C */ +118 3 7 8 /* V -> V */ +98 3 4 8 /* B -> B */ +110 4 7 8 /* N -> N */ +109 4 4 8 /* M -> M */ +44 5 7 8 /* , -> , */ +46 5 4 8 /* . -> . */ +47 6 7 8 /* / -> / */ +303 1 7 4 /* Right Shift -> Right Shift */ +32 7 4 8 /* Space -> Space */ +282 0 4 8 /* F1 -> F1/F4 */ +284 0 5 8 /* F3 -> F2/F5 */ +286 0 6 8 /* F5 -> F3/F6 */ +288 0 3 8 /* F7 -> HELP/F7 */ +278 7 1 8 /* Home -> CLR/HOME */ +127 5 3 8 /* Delete -> CRSR UP -> C64 Arrow-Up key */ +280 6 0 8 /* Page_Up -> CRSR LEFT -> C64 RESTORE key */ +275 6 3 8 /* Right -> CRSR RIGHT */ +274 5 0 8 /* Down -> CRSR DOWN */ +277 0 2 8 /* Ins -> Pound */ + + +# joystick keymap A (port 1) +264 -1 7 /* NumPad 8 -> UP */ +258 -1 2 /* NumPad 2 -> DOWN */ +260 -1 4 /* NumPad 4 -> LEFT */ +262 -1 5 /* NumPad 6 -> RIGHT */ +256 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +263 -2 7 /* NumPad 7 -> UP */ +259 -2 2 /* NumPad 3 -> DOWN */ +257 -2 4 /* NumPad 1 -> LEFT */ +265 -2 5 /* NumPad 9 -> RIGHT */ +266 -2 0 /* NumPad . -> FIRE */ + diff --git a/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/VIC20/Keymmodore64_ViceSDL_VIC20.vkm b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/VIC20/Keymmodore64_ViceSDL_VIC20.vkm new file mode 100644 index 00000000..973a0cbf --- /dev/null +++ b/trunk/workspace/BMC/Pimmodore-64/SRC/VICE VKM/VICE_SDL/VIC20/Keymmodore64_ViceSDL_VIC20.vkm @@ -0,0 +1,173 @@ +# VICE SDL based keyboard mapping file suitable for real C64 keyboards using Keymmodore-64 interfase by K-rnivoro. https://www.keymmodore.com/ +# Tested with VICE 3.1 SDL2 (https://vice-emu.sourceforge.io/windows.html) +# Mapped for positional compatibility to VIC-20 Keyboards. +# Using VICE default positional layout. +# +# File format: +# - comment lines start with '#' +# - keyword lines start with '!keyword' +# - normal line has 'keysym/scancode row column shiftflag' +# +# Keywords and their lines are: +# '!CLEAR' clear whole table +# '!INCLUDE filename' read file as mapping file +# '!LSHIFT row col' left shift keyboard row/column +# '!RSHIFT row col' right shift keyboard row/column +# '!VSHIFT shiftkey' virtual shift key (RSHIFT or LSHIFT) +# '!SHIFTL shiftkey' shift lock key (RSHIFT or LSHIFT) +# '!UNDEF keysym' remove keysym from table +# +# Shiftflag can have the values: +# 0 key is not shifted for this keysym/scancode +# 1 key is shifted for this keysym/scancode +# 2 left shift +# 4 right shift +# 8 key can be shifted or not with this keysym/scancode +# 16 deshift key for this keysym/scancode +# 32 another definition for this keysym/scancode follows +# 64 shift lock +# 256 key is used for an alternative keyboard mapping +# +# Negative row values: +# 'keysym -1 n' joystick keymap A, direction n +# 'keysym -2 n' joystick keymap B, direction n +# 'keysym -3 0' first RESTORE key +# 'keysym -3 1' second RESTORE key +# 'keysym -4 0' 40/80 column key +# 'keysym -4 1' CAPS (ASCII/DIN) key +# 'keysym -5 n' joyport keypad, key n +# +# Joystick direction values: +# 0 Fire +# 1 South/West +# 2 South +# 3 South/East +# 4 West +# 5 East +# 6 North/West +# 7 North +# 8 North/East +# +# Joyport keypad key layout: +# -------------------------- +# | 0 | 1 | 2 | 3 | 4 | +# -------------------------- +# | 5 | 6 | 7 | 8 | 9 | +# -------------------------- +# | 10 | 11 | 12 | 13 | 14 | +# -------------------------- +# | 15 | 16 | 17 | 18 | 19 | +# -------------------------- +# +# When a bigger spaced key is used, +# it uses the upper left most key value. + +# VIC20 Keyboard matrix +# +# +-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0|Bit 1|Bit 2|Bit 3|Bit 4|Bit 5|Bit 6|Bit 7| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 0| 1 ! |A_LFT| CTRL| R/S |SPACE| C= | Q | 2 " | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 1| 3 # | W | A | S_L | Z | S | E | 4 $ | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 2| 5 % | R | D | X | C | F | T | 6 & | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 3| 7 ' | Y | G | V | B | H | U | 8 ( | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 4| 9 ) | I | J | N | M | K | O | 0 | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 5| + | P | L | , < | . > | : [ | @ | - | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 6|POUND| * | ; ] | / ? | S_R | = | A_UP| HOME| +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ +# |Bit 7| DEL |Retrn|C_L/R|C_U/D| F1 | F3 | F5 | F7 | +# +-----+-----+-----+-----+-----+-----+-----+-----+-----+ + +!CLEAR +!LSHIFT 1 3 +!RSHIFT 6 4 +!VSHIFT RSHIFT +!SHIFTL LSHIFT + +27 0 3 8 /* ESC -> Run/Stop */ +49 0 0 8 /* 1 -> 1 */ +50 0 7 8 /* 2 -> 2 */ +51 1 0 8 /* 3 -> 3 */ +52 1 7 8 /* 4 -> 4 */ +53 2 0 8 /* 5 -> 5 */ +54 2 7 8 /* 6 -> 6 */ +55 3 0 8 /* 7 -> 7 */ +56 3 7 8 /* 8 -> 8 */ +57 4 0 8 /* 9 -> 9 */ +48 4 7 8 /* 0 -> 0 */ +45 5 0 8 /* Minus -> Plus */ +61 5 7 8 /* Equal -> Minus */ +8 7 0 8 /* Backspace -> Del */ +9 0 2 8 /* TAB -> Ctrl */ +113 0 6 8 /* Q -> Q */ +119 1 1 8 /* W -> W */ +101 1 6 8 /* E -> E */ +114 2 1 8 /* R -> R */ +116 2 6 8 /* T -> T */ +121 3 1 8 /* Y -> Y */ +117 3 6 8 /* U -> U */ +105 4 1 8 /* I -> I */ +111 4 6 8 /* O -> O */ +112 5 1 8 /* P -> P */ +91 5 6 8 /* [ -> @ */ +93 6 1 8 /* ] -> * */ +13 7 1 8 /* Return -> Return */ +306 0 5 8 /* Left Ctrl -> CBM */ +97 1 2 8 /* A -> A */ +115 1 5 8 /* S -> S */ +100 2 2 8 /* D -> D */ +102 2 5 8 /* F -> F */ +103 3 2 8 /* G -> G */ +104 3 5 8 /* H -> H */ +106 4 2 8 /* J -> J */ +107 4 5 8 /* K -> K */ +108 5 2 8 /* L -> L */ +59 5 5 8 /* ; -> : */ +39 6 2 8 /* ' -> ; */ +96 0 1 8 /* ` -> Left Arrow */ +92 6 5 8 /* \ -> = */ +304 1 3 2 /* Left Shift -> Left Shift */ +122 1 4 8 /* Z -> Z */ +120 2 3 8 /* X -> X */ +99 2 4 8 /* C -> C */ +118 3 3 8 /* V -> V */ +98 3 4 8 /* B -> B */ +110 4 3 8 /* N -> N */ +109 4 4 8 /* M -> M */ +44 5 3 8 /* , -> , */ +46 5 4 8 /* . -> . */ +47 6 3 8 /* / -> / */ +303 6 4 4 /* Right Shift -> Right Shift */ +32 0 4 8 /* Space -> Space */ +282 7 4 8 /* F1 -> F1 */ +284 7 5 8 /* F3 -> F3 */ +286 7 6 8 /* F5 -> F5 */ +288 7 7 8 /* F7 -> F7 */ +278 6 7 8 /* Home -> CLR/HOME */ +275 7 2 8 /* Right -> CRSR RIGHT */ +274 7 3 8 /* Down -> CRSR DOWN */ +277 6 0 8 /* Ins -> Pound */ +127 6 6 8 /* Del -> Up Arrow */ + +# Restore key mappings +280 -3 0 + +# joystick keymap A (port 1) +264 -1 7 /* NumPad 8 -> UP */ +258 -1 2 /* NumPad 2 -> DOWN */ +260 -1 4 /* NumPad 4 -> LEFT */ +262 -1 5 /* NumPad 6 -> RIGHT */ +256 -1 0 /* NumPad 0 -> FIRE */ + +# joystick Keymap B (port 2) +263 -2 7 /* NumPad 7 -> UP */ +259 -2 2 /* NumPad 3 -> DOWN */ +257 -2 4 /* NumPad 1 -> LEFT */ +265 -2 5 /* NumPad 9 -> RIGHT */ +266 -2 0 /* NumPad . -> FIRE */ diff --git a/trunk/workspace/CBMprgStudio/C64.sh b/trunk/workspace/CBMprgStudio/C64.sh new file mode 100755 index 00000000..1c72a1ba --- /dev/null +++ b/trunk/workspace/CBMprgStudio/C64.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=x64sc net.sf.VICE diff --git a/trunk/workspace/CBMprgStudio/Plus4.sh b/trunk/workspace/CBMprgStudio/Plus4.sh new file mode 100755 index 00000000..29cee31f --- /dev/null +++ b/trunk/workspace/CBMprgStudio/Plus4.sh @@ -0,0 +1,2 @@ +#!/bin/sh +/usr/bin/flatpak run --branch=stable --arch=x86_64 --command=xplus4 net.sf.VICE diff --git a/trunk/workspace/CBMprgStudio/Test/bak/test.prg b/trunk/workspace/CBMprgStudio/Test/bak/test.prg new file mode 100644 index 00000000..029aa717 Binary files /dev/null and b/trunk/workspace/CBMprgStudio/Test/bak/test.prg differ