This is vic20kbd.c in view mode; [Download] [Up]
/* * vic20kbd.c -- VIC20 keyboard handling for MS-DOS. * * Written by * Ettore Perazzoli (ettore@comm2000.it) * * This file is part of VICE, the Versatile Commodore Emulator. * See README for copyright notice. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA * 02111-1307 USA. * */ #include "vice.h" #include <stdio.h> #include "vic20kbd.h" #include "kbd.h" static keyconv vic20_keyboard[256] = { { -1, -1, 0 }, /* (no key) */ { -1, -1, 0 }, /* ESC -> (no key) */ { 0, 0, 0 }, /* 1 -> 1 */ { 0, 7, 0 }, /* 2 -> 2 */ { 1, 0, 0 }, /* 3 -> 3 */ { 1, 7, 0 }, /* 4 -> 4 */ { 2, 0, 0 }, /* 5 -> 5 */ { 2, 7, 0 }, /* 6 -> 6 */ { 3, 0, 0 }, /* 7 -> 7 */ { 3, 7, 0 }, /* 8 -> 8 */ { 4, 0, 0 }, /* 9 -> 9 */ { 4, 7, 0 }, /* 0 -> 0 */ { 5, 0, 0 }, /* Minus -> Plus */ { 5, 7, 0 }, /* Equal -> Minus */ { 7, 0, 0 }, /* Backspace -> Del */ { 0, 2, 0 }, /* TAB -> Ctrl */ { 0, 6, 0 }, /* Q -> Q */ { 1, 1, 0 }, /* W -> W */ { 1, 6, 0 }, /* E -> E */ { 2, 1, 0 }, /* R -> R */ { 2, 6, 0 }, /* T -> T */ { 3, 1, 0 }, /* Y -> Y */ { 3, 6, 0 }, /* U -> U */ { 4, 1, 0 }, /* I -> I */ { 4, 6, 0 }, /* O -> O */ { 5, 1, 0 }, /* p -> P */ { 5, 6, 0 }, /* [ -> @ */ { 6, 1, 0 }, /* ] -> * */ { 7, 1, 0 }, /* Return -> Return */ { 0, 5, 0 }, /* Left Ctrl -> CBM */ { 1, 2, 0 }, /* A -> A */ { 1, 5, 0 }, /* S -> S */ { 2, 2, 0 }, /* D -> D */ { 2, 5, 0 }, /* F -> F */ { 3, 2, 0 }, /* G -> G */ { 3, 5, 0 }, /* H -> H */ { 4, 2, 0 }, /* J -> J */ { 4, 5, 0 }, /* K -> K */ { 5, 2, 0 }, /* L -> L */ { 5, 5, 0 }, /* ; -> : */ { 6, 2, 0 }, /* ' -> ; */ { 0, 1, 0 }, /* ` -> Left Arrow */ { 1, 3, 1 }, /* Left Shift -> Left Shift */ { 6, 5, 0 }, /* \ -> = */ { 1, 4, 0 }, /* Z -> Z */ { 2, 3, 0 }, /* X -> X */ { 2, 4, 0 }, /* C -> C */ { 3, 3, 0 }, /* V -> V */ { 3, 4, 0 }, /* B -> B */ { 4, 3, 0 }, /* N -> N */ { 4, 4, 0 }, /* M -> M */ { 5, 3, 0 }, /* , -> , */ { 5, 4, 0 }, /* . -> . */ { 6, 3, 0 }, /* / -> / */ { 6, 4, 0 }, /* Right Shift -> Right Shift */ { 6, 1, 0 }, /* Grey * -> * */ { -1, -1, 0 }, /* Left Alt -> (no key) */ { 0, 4, 0 }, /* Space -> Space */ { 0, 3, 0 }, /* Caps Lock -> Run/Stop */ { 7, 4, 0 }, /* F1 -> F1 */ { 7, 4, 1 }, /* F2 -> F2 */ { 7, 5, 0 }, /* F3 -> F3 */ { 7, 5, 1 }, /* F4 -> F4 */ { 7, 6, 0 }, /* F5 -> F5 */ { 7, 6, 1 }, /* F6 -> F6 */ { 7, 7, 0 }, /* F7 -> F7 */ { 7, 7, 1 }, /* F8 -> F8 */ { -1, -1, 0 }, /* F9 -> (no key) */ { -1, -1, 0 }, /* F10 -> (no key) */ { -1, -1, 0 }, /* Num Lock -> (no key) */ { -1, -1, 0 }, /* Scroll Lock -> (no key) */ { -1, -1, 0 }, /* Numpad 7 -> (no key) */ { -1, -1, 0 }, /* Numpad 8 -> (no key) */ { -1, -1, 0 }, /* Numpad 9 -> (no key) */ { -1, -1, 0 }, /* Numpad - -> (no key) */ { -1, -1, 0 }, /* Numpad 4 -> (no key) */ { -1, -1, 0 }, /* Numpad 5 -> (no key) */ { -1, -1, 0 }, /* Numpad 6 -> (no key) */ { -1, -1, 0 }, /* Numpad + -> (no key) */ { -1, -1, 0 }, /* Numpad 1 -> (no key) */ { -1, -1, 0 }, /* Numpad 2 -> (no key) */ { -1, -1, 0 }, /* Numpad 3 -> (no key) */ { -1, -1, 0 }, /* Numpad 0 -> (no key) */ { -1, -1, 0 }, /* Numpad . -> (no key) */ { -1, -1, 0 }, /* SysReq -> (no key) */ { -1, -1, 0 }, /* 85 -> (no key) */ { -1, -1, 0 }, /* 86 -> (no key) */ { -1, -1, 0 }, /* F11 -> (no key) */ { -1, -1, 0 }, /* F12 -> (no key) */ { 6, 7, 0 }, /* Home -> CLR/HOME */ { 7, 3, 1 }, /* Up -> CRSR UP */ { -1, -1, 0 }, /* PgUp -> (no key) */ { 7, 2, 1 }, /* Left -> CRSR LEFT */ { 7, 2, 0 }, /* Right -> CRSR RIGHT */ { -1, -1, 0 }, /* End -> (no key) */ { 7, 3, 0 }, /* Down -> CRSR DOWN */ { -1, -1, 0 }, /* PgDown -> (no key) */ { 6, 0, 0 }, /* Ins -> Pound */ { 6, 6, 0 }, /* Del -> Up Arrow */ { -1, -1, 0 }, /* Numpad Enter -> (no key) */ { -1, -1, 0 }, /* Right Ctrl -> (no key) */ { -1, -1, 0 }, /* Pause -> (no key) */ { -1, -1, 0 }, /* PrtScr -> (no key) */ { -1, -1, 0 }, /* Numpad / -> (no key) */ { -1, -1, 0 }, /* Right Alt -> (no key) */ { -1, -1, 0 }, /* Break -> (no key) */ { -1, -1, 0 }, /* Left Win95 -> (no key) */ { -1, -1, 0 } /* Right Win95 -> (no key) */ }; int vic20_kbd_init(void) { return kbd_init(1, 1, 3, vic20_keyboard, sizeof(vic20_keyboard)); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.