CCS64 Forum

A forum to discuss issues about CCS64!
It is currently Wed Dec 13, 2017 12:49 pm

All times are UTC + 2 hours




Post new topic Reply to topic  [ 5 posts ] 
Author Message
 Post subject: Keyboard Mapping
PostPosted: Mon May 22, 2006 11:25 pm 
Offline

Joined: Mon May 22, 2006 11:23 pm
Posts: 1
Is there a way to set CCS64 so that it uses the standard PC keyboard to enter data into the C64? For instance I'd love to be able to press the " key instead of remembering shift-2 to double quotes.

Thanks,

Jason Hoffman


Top
 Profile  
 
 Post subject:
PostPosted: Tue May 23, 2006 7:27 am 
Offline
Site Co-Admin

Joined: Wed Aug 20, 2003 2:46 pm
Posts: 786
Location: East Yorkshire, England
No. Certain special keys are pre-mapped. Refer to the CCS64.HTML file for more information. All emulators need to behave in this manner.

_________________
Kind regards,

Stuart Toomer.


Top
 Profile  
 
 Post subject: Re: Keyboard Mapping
PostPosted: Sat May 22, 2010 2:59 pm 
Offline

Joined: Sat May 22, 2010 2:47 pm
Posts: 3
When you say "need to", why is that? I am just curious, and not mocking your comment. As a coder myself, I can't see why not?

I agree with the OP here, because trying to type a BASIC program on CCS64 is so hard due to typos. I haven't touched a real C64 keyboard in over 20 years.


Top
 Profile  
 
 Post subject: Re: Keyboard Mapping
PostPosted: Sun Jun 06, 2010 10:13 am 
Offline
Site Co-Admin

Joined: Wed Aug 20, 2003 2:46 pm
Posts: 786
Location: East Yorkshire, England
When I talk about 'special' keys, I mean keys that are not normal for the type of keyboard being used. For example, the C= key in not standard on a PC keyboard, so this key need to be mapped to some special PC key-combination instead; so when the user enters this special key-combination on the PC keyboard, the emulator will pretend that the C= key has been pressed on the 'original' (C64) keyboard within its key-input routine(s). Surely, all emulators that need to emulate a non-standard keyboard need to do something like this in code,to achieve such legacy-compatibility.

_________________
Kind regards,

Stuart Toomer.


Top
 Profile  
 
 Post subject: Re: Keyboard Mapping
PostPosted: Tue Jun 08, 2010 8:57 am 
Offline

Joined: Fri Nov 12, 2004 12:12 pm
Posts: 115
Location: The Netherlands
I always thought it would be impossible to map a standard US keyboard to a C64 emulator, because a C64 wants a 'Shift-2' to display a double quote character.
But it is indeed possible. If you replace the text in WIN_POS.VKM with the text below, it works perfectly in the VICE emulator.
Code:
-----------------------------------------------

# VICE keyboard mapping file
#
# Modified by Leif Bloomquist on March 23/2007 to
#   give a proper symbolic mapping on US kbds - finally!!!1
#
# A Keyboard map is read in as patch to the current map.
#
# 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
#

!CLEAR
!LSHIFT 1 7
!RSHIFT 6 4
!VSHIFT RSHIFT

#0 -1 -1 0             /*           (no key)           */
1 7 7 8                /*          ESC -> Run/Stop     */
2 7 0 8                /*            1 -> 1            */
3 7 3 40               /*            2 -> 2            */
3 5 6 16               /*            @ -> @            */
4 1 0 8                /*            3 -> 3            */
5 1 3 8                /*            4 -> 4            */
6 2 0 8                /*            5 -> 5            */
7 2 3 40               /*            6 -> 6            */
7 6 6 16               /*            ^ -> ^            */
8 3 0 40               /*            7 -> 7            */
8 2 3 1                /*            & -> &            */
9 3 3 40               /*            8 -> 8            */
9 6 1 16               /*            * -> *            */
10 4 0 40              /*            9 -> 9            */
10 3 3 1               /*            ( -> (            */
11 4 3 40              /*            0 -> 0            */
11 4 0 1               /*            ) -> )            */
12 5 3 8               /*        Minus -> Minus        */
13 6 5 40              /*        Equal -> Equal        */
13 5 0 16              /*            + -> +            */
14 0 0 8               /*    Backspace -> Del          */
15 7 2 8               /*          TAB -> Ctrl         */
16 7 6 8               /*            Q -> Q            */
17 1 1 8               /*            W -> W            */
18 1 6 8               /*            E -> E            */
19 2 1 8               /*            R -> R            */
20 2 6 8               /*            T -> T            */
21 3 1 8               /*            Y -> Y            */
22 3 6 8               /*            U -> U            */
23 4 1 8               /*            I -> I            */
24 4 6 8               /*            O -> O            */
25 5 1 8               /*            P -> P            */
26 5 5 1               /*            [ -> [            */
27 6 2 1               /*            ] -> ]            */
28 0 1 8               /*       Return -> Return       */
29 7 5 8               /*    Left Ctrl -> CBM          */
30 1 2 8               /*            A -> A            */
31 1 5 8               /*            S -> S            */
32 2 2 8               /*            D -> D            */
33 2 5 8               /*            F -> F            */
34 3 2 8               /*            G -> G            */
35 3 5 8               /*            H -> H            */
36 4 2 8               /*            J -> J            */
37 4 5 8               /*            K -> K            */
38 5 2 8               /*            L -> L            */
39 6 2 40              /*            ; -> ;            */
39 5 5 16              /*            : -> :            */
40 3 0 33              /*            ' -> '            */
40 7 3 1               /*            ' -> '            */
41 7 1 40              /*            ` -> Left Arrow   */
41 6 6 1               /*            ~ -> Pi           */
42 1 7 2               /*   Left Shift -> Left Shift   */
43 6 0 8               /*            \ -> Pound        */
44 1 4 8               /*            Z -> Z            */
45 2 7 8               /*            X -> X            */
46 2 4 8               /*            C -> C            */
47 3 7 8               /*            V -> V            */
48 3 4 8               /*            B -> B            */
49 4 7 8               /*            N -> N            */
50 4 4 8               /*            M -> M            */
51 5 7 8               /*            , -> ,            */
52 5 4 8               /*            . -> .            */
53 6 7 8               /*            / -> /            */
54 6 4 4               /*  Right Shift -> Right Shift  */
55 6 1 8               /*       Grey * -> *            */
#56 -1 -1 0            /*     Left Alt -> (no key)     */
57 7 4 8               /*        Space -> Space        */
58 7 7 8               /*    Caps Lock -> Run/Stop     */
59 0 4 8               /*           F1 -> F1           */
60 0 4 1               /*           F2 -> F2           */
61 0 5 8               /*           F3 -> F3           */
62 0 5 1               /*           F4 -> F4           */
63 0 6 8               /*           F5 -> F5           */
64 0 6 1               /*           F6 -> F6           */
65 0 3 8               /*           F7 -> F7           */
66 0 3 1               /*           F8 -> F8           */
#67 -1 -1 0            /*           F9 -> (no key)     */
#68 -1 -1 0            /*          F10 -> (no key)     */
#69 -1 -1 0            /*     Num Lock -> (no key)     */
#70 -1 -1 0            /*  Scroll Lock -> (no key)     */
#71 -1 -1 0            /*     Numpad 7 -> (no key)     */
#72 -1 -1 0            /*     Numpad 8 -> (no key)     */
#73 -1 -1 0            /*     Numpad 9 -> (no key)     */
#74 -1 -1 0            /*     Numpad - -> (no key)     */
#75 -1 -1 0            /*     Numpad 4 -> (no key)     */
#76 -1 -1 0            /*     Numpad 5 -> (no key)     */
#77 -1 -1 0            /*     Numpad 6 -> (no key)     */
#78 -1 -1 0            /*     Numpad + -> (no key)     */
#79 -1 -1 0            /*     Numpad 1 -> (no key)     */
#80 -1 -1 0            /*     Numpad 2 -> (no key)     */
#81 -1 -1 0            /*     Numpad 3 -> (no key)     */
#82 -1 -1 0            /*     Numpad 0 -> (no key)     */
#83 -1 -1 0            /*     Numpad . -> (no key)     */
#84 -1 -1 0            /*       SysReq -> (no key)     */
#85 -1 -1 0            /*           85 -> (no key)     */
#86 -1 -1 0            /*           86 -> (no key)     */
#87 -1 -1 0            /*          F11 -> (no key)     */
#88 -1 -1 0            /*          F12 -> (no key)     */
89 6 3 8               /*         Home -> CLR/HOME     */
90 0 7 1               /*           Up -> CRSR UP      */
#91 -1 -1 0            /*         PgUp -> (no key)     */
92 0 2 1               /*         Left -> CRSR LEFT    */
93 0 2 8               /*        Right -> CRSR RIGHT   */
#94 -1 -1 0            /*          End -> (no key)     */
95 0 7 8               /*         Down -> CRSR DOWN    */
#96 -1 -1 0            /*       PgDown -> (no key)     */
97 0 0 1               /*          Ins -> Shift-Del (Ins)*/
98 0 0 8               /*          Del -> Del          */
#99 -1 -1 0            /* Numpad Enter -> (no key)     */
#100 -1 -1 0           /*   Right Ctrl -> (no key)     */
#101 -1 -1 0           /*        Pause -> (no key)     */
#102 -1 -1 0           /*       PrtScr -> (no key)     */
#103 -1 -1 0           /*     Numpad / -> (no key)     */
#104 -1 -1 0           /*    Right Alt -> (no key)     */
#105 -1 -1 0           /*        Break -> (no key)     */
106 7 5 8              /*   Left Win95 -> CBM          */
#107 -1 -1 0           /*  Right Win95 -> (no key)     */

#
# Joystick 1
#
#KP_0 -1 0
#KP_1 -1 1
#KP_2 -1 2
#KP_3 -1 3
#KP_4 -1 4
#KP_5 -1 5
#KP_6 -1 6
#KP_7 -1 7
#KP_8 -1 8
#KP_9 -1 9

#
# Joystick 2
#
#w -2 7
#e -2 8
#r -2 9
#s -2 4
#d -2 5
#f -2 6
#x -2 1
#c -2 2
#v -2 3
#space -2 0

# Restore key mappings
91 -3 0         /*         PgUp -> RESTORE      */


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC + 2 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group