diff options
359 files changed, 22145 insertions, 1439 deletions
@@ -41,5 +41,6 @@ push tocheck* *.html !www/template.html -/www/temp.md /www/news/index.md +/www/feed.xml +/www/news/feed.xml diff --git a/docs/bsd/netbsd.md b/docs/bsd/netbsd.md index c3ed6970..323d0301 100644 --- a/docs/bsd/netbsd.md +++ b/docs/bsd/netbsd.md @@ -134,8 +134,11 @@ On your NetBSD root partition, create the `/grub` directory and add the file `libreboot_grub.cfg` to it. Inside the `libreboot_grub.cfg` add these lines: - default=0 timeout=3 menuentry "NetBSD" { -    knetbsd -r wd0a (ahci0,netbsd1)/netbsd + default=0 + timeout=3 + + menuentry "NetBSD" { + knetbsd -r wd0a (ahci0,netbsd1)/netbsd } The next time you boot, you'll see the old Grub menu for a few seconds, diff --git a/docs/bsd/openbsd.md b/docs/bsd/openbsd.md index ca9ac387..7fb96d9f 100644 --- a/docs/bsd/openbsd.md +++ b/docs/bsd/openbsd.md @@ -12,13 +12,13 @@ LibertyBSD and prioritise that in this guide. This section relates to preparing, booting and installing OpenBSD on your libreboot system, using nothing more than a USB flash drive (and -*dd*). They've only been tested on a Lenovo ThinkPad x200. +`dd`). They've only been tested on a Lenovo ThinkPad x200. *This section is only for the GRUB payload. For depthcharge (used on CrOS devices in libreboot), instructions have yet to be written in the libreboot documentation.* -install60.fs is the installation image for OpenBSD 6.0. Adapt the +install61.fs is the installation image for OpenBSD 6.1. Adapt the filename accordingly, for a different OpenBSD version or LibertyBSD. Prepare the USB drive (in LibertyBSD or OpenBSD) @@ -27,21 +27,19 @@ Prepare the USB drive (in LibertyBSD or OpenBSD) If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to create the bootable LibertyBSD/OpenBSD USB drive: -Connect the USB drive. Check dmesg: +Connect the USB drive and check the system message buffer: $ dmesg | tail -Check to confirm which drive it is, for example, if you think its sd3: +Check to confirm which drive it is, for example, if you think it's `sd3`: $ disklabel sd3 -Check that it wasn't automatically mounted. If it was, unmount it. For -example: +Check that it wasn't automatically mounted. If it was, unmount it: $ doas umount /dev/sd3i -dmesg told you what device it is. Overwrite the drive, writing the -OpenBSD installer to it with dd. For example: +Now write the OpenBSD installer to the drive with `dd`: $ doas dd if=install60.fs of=/dev/rsdXc bs=1M; sync @@ -54,7 +52,7 @@ Prepare the USB drive (in NetBSD) [This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) on the NetBSD website shows how to create a NetBSD bootable USB drive -from within NetBSD itself. You should use the *dd* method documented +from within NetBSD itself. You should use the `dd` method documented there. This will also work with the OpenBSD image. Prepare the USB drive (in FreeBSD) @@ -62,7 +60,7 @@ Prepare the USB drive (in FreeBSD) [This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.md) on the FreeBSD website shows how to create a bootable USB drive for -installing FreeBSD. Use the *dd* on that page. You can also use the same +installing FreeBSD. Use the `dd` on that page. You can also use the same instructions with a OpenBSD ISO image. Prepare the USB drive (in GNU+Linux) @@ -88,8 +86,8 @@ example: dmesg told you what device it is. Overwrite the drive, writing your distro ISO to it with dd. For example: - $ sudo dd if=install60.fs of=/dev/sdX bs=8M; sync - # dd if=install60.fs of=/dev/sdX bs=8M; sync + $ sudo dd if=install61.fs of=/dev/sdX bs=8M; sync + # dd if=install61.fs of=/dev/sdX bs=8M; sync You should now be able to boot the installer from your USB drive. Continue reading, for information about how to do that. @@ -99,7 +97,7 @@ Installing OpenBSD without full disk encryption Press C in GRUB to access the command line: - grub> kopenbsd (usb0,openbsd1)/6.0/amd64/bsd.rd + grub> kopenbsd (usb0,openbsd1)/6.1/amd64/bsd.rd grub> boot It will start booting into the OpenBSD installer. Follow the normal @@ -110,7 +108,7 @@ Installing OpenBSD with full disk encryption Not working. You can modify the above procedure (installation w/o encryption) to install OpenBSD using full disk encryption, and it -appears to work, except that its not yet clear how to actually *boot* an +appears to work, except that it's not yet clear how to actually *boot* an OpenBSD+FDE installation using libreboot+Grub2. If you get it working, please let us know. @@ -154,10 +152,16 @@ be used by libreboot. On your OpenBSD root partition, create the `/grub` directory and add the file `libreboot_grub.cfg` to it. Inside the `libreboot_grub.cfg` add these lines: - default=0 timeout=3 menuentry "OpenBSD" { -    kopenbsd -r sd0a (ahci0,openbsd1)/bsd + default=0 + timeout=3 + + menuentry "OpenBSD" { + kopenbsd -r sd0a (ahci0,openbsd1)/bsd } +If your OpenBSD installation uses a GPT scheme, use the `gpt4` partition +instead of `openbsd1`. + The next time you boot, you'll see the old Grub menu for a few seconds, then you'll see the a new menu with only OpenBSD on the list. After 3 seconds OpenBSD will boot, or you can hit enter to boot. diff --git a/docs/gnulinux/configuring_parabola.md b/docs/gnulinux/configuring_parabola.md index 052ba5d9..1e525f59 100644 --- a/docs/gnulinux/configuring_parabola.md +++ b/docs/gnulinux/configuring_parabola.md @@ -24,7 +24,7 @@ Paradoxically, as you get more advanced, Parabola can actually become compared to what most distributions provide. You will find over time that other distributions tend to *get in your way*. -A lot of the steps in this guide will refer to the Arch wiki. Arch is +A lot of the steps in this guide will refer to ArchWiki. Arch is the upstream distribution that Parabola uses. Most of this guide will also tell you to read wiki articles, other pages, manuals, and so on. In general, it tries to cherry-pick the most useful information, but @@ -33,21 +33,21 @@ nonetheless, you are encouraged to learn as much as possible. **NOTE: It might take you a few days to fully install your system how you like, depending on how much you need to read. Patience is key, especially for new users.** -The Arch wiki will sometimes use bad language, such as calling the whole +The ArchWiki will sometimes use bad language, such as calling the whole system Linux, using the term **open-source**/**closed-source**, and it will sometimes recommend the use of proprietary software. -You need to be careful about this when reading anything on the Arch wiki. +You need to be careful about this when reading anything on ArchWiki. Some of these steps require internet access. To get initial access for setting up the system (I'll go into networking later), just connect your system to a router, via an ethernet cable, and run the following command: - # systemctl start dhcpcd.service + # systemctl start dhcpcd.service You can stop it later (if needed), by using systemd's `stop` option: - # systemctl stop dhcpcd.service + # systemctl stop dhcpcd.service For most people, this should be enough, but if you don't have DHCP enabled on your network, then you should setup your network connection first: @@ -69,7 +69,7 @@ For more information related to `pacman`, review the following articles on the A Parabola is kept up-to-date, using `pacman`. When you are updating Parabola, make sure to refresh the package list, *before* installing any new updates: - # pacman -Syy + # pacman -Syy **NOTE: According to the Wiki,** `-Syy` **is better than** `-Sy` **, because it refreshes the package list (even if it appears to be up-to-date), which can be useful @@ -77,7 +77,7 @@ when switching to another mirror.** Then, actually update the system: - # pacman -Syu + # pacman -Syu **NOTE: Before installing packages with** `pacman -S`**, always update first, using the two commands above.** @@ -121,16 +121,16 @@ before. In general, keeping notes (such as what I have done with this page) can be very useful as a reference in the future (e.g, if you wanted to re-install it, or install the distro on another computer). -You should also read the Arch wiki article on [System Maintenance](https://wiki.archlinux.org/index.php/System_maintenance), +You should also read the ArchWiki article on [System Maintenance](https://wiki.archlinux.org/index.php/System_maintenance), before continuing. Also, read their article on [enhancing system stability](https://wiki.archlinux.org/index.php/Enhance_system_stability). This is important, so make sure to read them both!* Install `smartmontools`; it can be used to check smart data. HDDs use non-free firmware inside; it's transparent to you, but the smart data comes from it. Therefore, don't rely on it too much), and then read -the Arch wiki [article](https://wiki.archlinux.org/index.php/S.M.A.R.T.) on it, to learn how to use it: +the ArchWiki [article](https://wiki.archlinux.org/index.php/S.M.A.R.T.) on it, to learn how to use it: - # pacman -S smartmontools + # pacman -S smartmontools ### Cleaning the Package Cache *This section provides a brief overview of how to manage the directory that stores @@ -139,7 +139,7 @@ check out the Arch Wiki guide for [Cleaning the Package Cache](https://wiki.arch Here's how to use `pacman`, to clean out all old packages that are cached: - # pacman -Sc + # pacman -Sc The Wiki cautions that this should be used with care. For example, since older packages are deleted from the repository, if you encounter issues @@ -149,7 +149,7 @@ caches available. Only do this ,if you are sure that you won't need it. The Wiki also mentions this method for removing everything from the cache, including currently installed packages that are cached: - # pacman -Scc + # pacman -Scc This is inadvisable, since it means re-downloading the package again, if you wanted to quickly re-install it. This should only be used when disk @@ -183,11 +183,11 @@ Read the entire document linked to above, and then continue. Add your user with the `useradd` command (self explanatory): - # useradd -m -G wheel -s /bin/bash *your_user_name* + # useradd -m -G wheel -s /bin/bash *your_user_name* Set a password, using `passwd`: - # passwd *your_user_name* + # passwd *your_user_name* Like with the installation of Parabola, use of the [*diceware method*](http://world.std.com/~reinhold/diceware.html) is recommended, for generating secure passphrases. @@ -195,32 +195,32 @@ for generating secure passphrases. ### Configure sudo Now that we have a normal user account, we'll want to configure `sudo`, so that user is able to run commands as **root** (e.g., installing software); -this will be necessary to flash the ROM later on. Refer to the Arch wiki's [sudo](https://wiki.archlinux.org/index.php/Sudo) documentation. +this will be necessary to flash the ROM later on. Refer to ArchWiki's [sudo](https://wiki.archlinux.org/index.php/Sudo) documentation. The first step is to install the `sudo` package: - # pacman -S sudo + # pacman -S sudo After installation, we must configure it. To do so, we must modify **/etc/sudoers**. This file must *always* be modified with the `visudo` command. `visudo` can be difficult for beginners to use, so we'll want to edit the file with `nano`, but the trick is that we just can't do this: - # nano /etc/sudoers + # nano /etc/sudoers Because, this will cause us to edit the file directly, which is not the way it was designed to be edited, and could lead to problems with the system. Instead, to temporarily allow us to use `nano` to edit the file, we need to type this into the terminal: - # EDITOR=nano visudo + # EDITOR=nano visudo This will open the **/etc/sudoers** file in `nano`, and we can now safely make changes to it. To give the user we created earlier to ability to use `sudo`, we need to navigate to the end of the file, and add this line on the end: - your_username ALL=(ALL) ALL + your_username ALL=(ALL) ALL Obviously, type in the name of the user you created, instead of **your_username**. Save the file, and exit `nano`; your user now has the ability to use `sudo`. @@ -237,12 +237,12 @@ a sound manager (to make sure you can hear sound through speakers or headphones) or DHCP (which allows you to get an IP address, to connect to the internet). These are just a few examples; there are countless others. -`systemd` is a controversial init system; [here](https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530) -is an explanation behind the Arch development team's decision to use it. +`systemd` is a controversial init system; A [forum post](https://bbs.archlinux.org/viewtopic.php?pid=1149530#p1149530) +has an explanation behind the Arch development team's decision to use it. The **manpage** should also help: - # man systemd + # man systemd The section on **unit types** is especially useful. @@ -254,15 +254,15 @@ I will reduce the total size of the journal to 50MiB (that's what the wiki recom Open **/etc/systemd/journald.conf**, and find this line: - #SystemMaxUse= + #SystemMaxUse= Change it to this: - SystemMaxUse=50M + SystemMaxUse=50M Restart `journald`: - # systemctl restart systemd-journald + # systemctl restart systemd-journald The wiki recommends that if the journal gets too large, you can also simply delete (`rm -Rf`) everything inside **/var/log/journald**, but @@ -273,14 +273,14 @@ to delete older records, when the journal size reaches it's limit (according to Finally, the wiki mentions **temporary files**, and the utility for managing them. - # man systemd-tmpfiles + # man systemd-tmpfiles To delete the temporary files, you can use the `clean` option: - # systemd-tmpfiles --clean + # systemd-tmpfiles --clean According to the **manpage**, this *"cleans all files and directories with -an age parameter"*. According to the Arch wiki, this reads information +an age parameter"*. According to ArchWiki, this reads information in **/etc/tmpfiles.d** and **/usr/lib/tmpfiles.d**, to know what actions to perform. Therefore, it is a good idea to read what's stored in these locations, to get a better understanding. @@ -288,7 +288,7 @@ I looked in **/etc/tmpfiles.d/** and found that it was empty on my system. However, **/usr/lib/tmpfiles.d** contained some files. The first one was **etc.conf**, containing information and a reference to this **manpage**: - # man tmpfiles.d + # man tmpfiles.d Read that **manpage**, and then continue studying all the files. @@ -304,42 +304,42 @@ depending on your use case. I enabled it on my system, to see what was in it. Edit **/etc/pacman.conf**, and below the **extra** section add: - [kernels] - Include = /etc/pacman.d/mirrorlist* + [kernels] + Include = /etc/pacman.d/mirrorlist* Now, sync with the newly-added repository: - # pacman -Syy + # pacman -Syy Lastly, list all available packages in this repository: - # pacman -Sl kernels + # pacman -Sl kernels In the end, I decided not to install anything from it, but I kept the repository enabled regardless. ## Setup a Network Connection in Parabola -Read the Arch wiki guide to [Configuring the Network](https://wiki.archlinux.org/index.php/Configuring_Network). +Read the ArchWiki guide to [Configuring the Network](https://wiki.archlinux.org/index.php/Configuring_Network). ### Set the Hostname This should be the same as the hostname that you set in **/etc/hostname**, when installing Parabola. You should also do it with `systemd`. If you chose the hostname *parabola*, do it this way: - # hostnamectl set-hostname parabola + # hostnamectl set-hostname parabola This writes the specified hostname to **/etc/hostname**. More information can be found in these **manpages**: - # man hostname - # info hostname - # man hostnamectl + # man hostname + # info hostname + # man hostnamectl Check **/etc/hosts**, to make sure that the hostname that you put in there during installation is still on each line: - 127.0.0.1 localhost.localdomain localhost parabola - ::1 localhost.localdomain localhost parabola + 127.0.0.1 localhost.localdomain localhost parabola + ::1 localhost.localdomain localhost parabola You'll note that I set both lines; the second line is for IPv6. Since more and more ISPs are providing this now, it's good to be have it enabled, just in case. @@ -348,25 +348,25 @@ The `hostname` utility is part of the `inetutils` package, and is in the **core* installed by default (as part of the **base** package). ### Network Status -According to the Arch wiki, [udev](https://wiki.archlinux.org/index.php/Udev) should already detect +According to ArchWiki, [udev](https://wiki.archlinux.org/index.php/Udev) should already detect the ethernet chipset, and automatically load the driver for it at boot time. You can check this in the **Ethernet controller** section, when running the `lspci` command: - # lspci -v + # lspci -v Look at the remaining sections **Kernel driver in use** and **Kernel modules**. In my case, it was as follows: - Kernel driver in use: e1000e - Kernel modules: e1000e + Kernel driver in use: e1000e + Kernel modules: e1000e Check that the driver was loaded, by issuing `dmesg | grep module_name`. In my case, I did: - # dmesg | grep e1000e + # dmesg | grep e1000e ### Network Device Names -According to the Arch wiki guide on [Configuring Network Device Names](https://wiki.archlinux.org/index.php/Configuring_Network#Device_names), +According to the ArchWiki guide on [Configuring Network Device Names](https://wiki.archlinux.org/index.php/Configuring_Network#Device_names), it is important to note that the old interface names that you might be used to (e.g., `eth0`, `wlan0`, `wwan0`, etc.), if you come from a distribution like Debian or Trisquel, are no longer applicable. Instead, `systemd` creates device names @@ -375,7 +375,7 @@ with a fixed identifier that it automatically generates. An example device name for your ethernet chipset would be `enp0s25`, and is never supposed to change. -If you want to enable the old names, the Arch wiki recommends adding `net.ifnames=0` +If you want to enable the old names, ArchWiki recommends adding `net.ifnames=0` to your kernel parameters (in Libreboot context, this would be accomplished by following the instructions in [How to replace the default GRUB configuration file](grub_cbfs.md)). @@ -383,7 +383,7 @@ For background information, read [Predictable Network Interface Names](http://ww To show what the device names are for your system, run the following command: - # ls /sys/class/net + # ls /sys/class/net [Changing the device names](https://wiki.archlinux.org/index.php/Configuring_Network#Change_device_name) is possible, but for the purposes of this guide, there is no reason to do it. @@ -401,24 +401,24 @@ that you could use. Since we are going with the *MATE Desktop Environment*, we will primarily be following the instructions on the [Arch Linux Package Repository](https://wiki.mate-desktop.org/archlinux_custom_repo) page, but will also refer to the [General Recommendations](https://wiki.archlinux.org/index.php/General_recommendations#Graphical_user_interface) -on the Arch wiki. +on ArchWiki. ### Installing Xorg The first step is to install [**Xorg**](https://wiki.archlinux.org/index.php/Xorg); this provides an implementation of the `X Window System`, which is used to provide a graphical intefrace in GNU+Linux: - # pacman -S xorg-server + # pacman -S xorg-server We also need to install the driver for our hardware. Since I am using a Thinkpad X200, I will use `xf86-video-intel`; it should be the same on the other Thinkpads, as well as the Macbook 1,1 and 2,1. - # pacman -S xf86-video-intel + # pacman -S xf86-video-intel For other systems, you can try: - # pacman -Ss xf86-video- | less + # pacman -Ss xf86-video- | less When this is combined with looking at your `lspci` output, you can determine which driver is needed. By default, `Xorg` will revert to `xf86-video-vesa`, @@ -426,68 +426,69 @@ which is a generic driver, and doesn't provide true hardware acceleration. Other drivers (not just video) can be found by looking at the `xorg-drivers` group: - # pacman -Sg xorg-drivers + # pacman -Sg xorg-drivers ### Xorg Keyboard Layout `xorg` uses a different configuration method for keyboard layouts than Parabola, so you will notice that the layout you set in **/etc/vconsole.conf** earlier might not actually be the same in `xorg`. -Check the Arch wiki's article on [Xorg's keyboard configuration](https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg), for more information. +Check ArchWiki's article on [Xorg's keyboard configuration](https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg), for more information. To see what layout you currently use, try this on a terminal emulator in `xorg`: - # setxkbmap -print -verbose 10 + # setxkbmap -print -verbose 10 I'm simply using the default Qwerty (US) keyboard, so there isn't anything I need -to change here; if you do need to make any changes, the Arch wiki recommends two ways +to change here; if you do need to make any changes, ArchWiki recommends two ways of doing it: manually updating [configuration files](https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_X_configuration_files) or using the [localectl](https://wiki.archlinux.org/index.php/Keyboard_configuration_in_Xorg#Using_localectl) command. ### Installing MATE Now we have to install the desktop environment itself. According to the Arch Linux Package Repository, if we want all of the MATE Desktop, we need to install two packages: - # pacman -Syy mate mate-extra + # pacman -Syy mate mate-extra The last step is to install a Display Manager; for MATE, we will be using `lightdm` -(it's the recommended Display Manager for the MATE Desktop); for this, we'll follow the insructions [here](https://wiki.mate-desktop.org/archlinux_custom_repo#display_manager_recommended), +(it's the recommended Display Manager for the MATE Desktop); for this, we'll folow the instructions [on the MATE wiki](https://wiki.mate-desktop.org/archlinux_custom_repo#display_manager_recommended), with one small change: the `lightdm-gtk3-greeter` package doesn't exist in Parabola's repositories. So, instead we will install the `lightdm-gtk-greeter` package; it performs the same function. We'll also need the `accountsservice` package, which gives us the login window itself: - # pacman -Syy lightdm-gtk3-greeter accountsservice + # pacman -Syy lightdm-gtk3-greeter accountsservice After installing all the required packages, we need to make it so that the MATE Desktop Environment will start automatically, whenever we boot our computer; to do this, we have to enable the display manager, `lightdm`, as well as the service that will prompt us with a login window, `accounts-daemon`: - # systemctl enable lightdm - # systemctl enable accounts-daemon + # systemctl enable lightdm + # systemctl enable accounts-daemon Now you have installed the *MATE Desktop Environment*,If you wanted -to install another desktop environment, check out some [other options](https://wiki.archlinux.org/index.php/Desktop_environment) on the the Arch wiki. +to install another desktop environment, check out some [other options](https://wiki.archlinux.org/index.php/Desktop_environment) on ArchWiki. ### Configuring Network Manager in MATE Now that we have installed the Mate Desktop environment, and booted into it, we need to set up the network configuration in our graphical environment. -The MATE Desktop wiki recommends that we use Network Manager; the Arch wiki article -about it can be found [here](https://wiki.archlinux.org/index.php/NetworkManager). +The MATE Desktop wiki recommends that we use Network Manager; an +article about Network Manager can be found +[on ArchWiki](https://wiki.archlinux.org/index.php/NetworkManager). We need to install the NetworkManager package: - # pacman -S networkmanager + # pacman -S networkmanager We will also need the Network Manager applet, which will allow us to manage our networks from the system tray: - # pacman -S network-manager-applet + # pacman -S network-manager-applet Finally, we need to start the service (if we want to use it now), or enable it, (so that it will activate automatically, at startup). - # systemctl enable NetworkManager.service + # systemctl enable NetworkManager.service If you need VPN support, you will also want to install the `networkmanager-openvpn` package. @@ -498,11 +499,11 @@ with Network Manager are** `dhcpcd` **and** `wifi-menu`**.** You can see all currently-running services with this command: - # systemctl --type=service + # systemctl --type=service And you can stop them using this command: - # systemctl stop service_name.service + # systemctl stop service_name.service If you want to disable those services, meaning that you no longer want them to start when the computer boots up, you will need to use `systemctl's` `disable` option, diff --git a/docs/gnulinux/encrypted_debian.md b/docs/gnulinux/encrypted_debian.md index 2b95b2a9..83f0dd28 100644 --- a/docs/gnulinux/encrypted_debian.md +++ b/docs/gnulinux/encrypted_debian.md @@ -154,8 +154,8 @@ Choose 'Yes'. It will fail, but don't worry. Then at the main menu, choose 'Continue without a bootloader'. You could also choose 'No'. Choice is irrelevant here. -*You do not need to install GRUB at all, since in libreboot you are -using the GRUB payload (for libreboot) to boot your system directly.* +*Don't forget to have grub-coreboot package installed, even though installing grub to MBR is irrelevant +on libreboot system, grub tools are still needed to eg. generate config (`grub-mkconfig`)* Clock UTC ========= diff --git a/docs/gnulinux/encrypted_parabola.md b/docs/gnulinux/encrypted_parabola.md index c0c395c4..a4d7dd16 100644 --- a/docs/gnulinux/encrypted_parabola.md +++ b/docs/gnulinux/encrypted_parabola.md @@ -20,12 +20,15 @@ This guide borrows heavily from the Parabola wiki, and will constantly link to i For those new to Parabola GNU+Linux-Libre, check their [Beginner section](https://wiki.parabola.nu/Beginners%27_guide#Beginners) for an overview. ## Minumum Requirements -You can find the minimum requirements to run Parabola GNU+Linux [here](https://wiki.parabola.nu/Beginners%27_guide#Minimum_system_requirements). +You can find the minimum requirements to run Parabola GNU+Linux +[on the Parabola wiki](https://wiki.parabola.nu/Beginners%27_guide#Minimum_system_requirements). ## Preparation ### Download the latest ISO -For this guide, I used the *2016.11.03* ISO; the most current image is available [here](https://wiki.parabola.nu/Get_Parabola#Main_live_ISO). +For this guide, I used the *2016.11.03* ISO; the most current image is +available on Parabola's +[downloads page](https://wiki.parabola.nu/Get_Parabola#Main_live_ISO). If you are a complete beginner with GNU+Linux, choose the *Mate Desktop ISO*. it is easier to install Parabola with this version, because it allows you @@ -80,7 +83,7 @@ if it's not new, then there are two ways to handle it: you can either choose to fill it with zeroes or random data; I chose random data (e.g., `urandom`), because it's more secure. Depending on the size of the drive, this could take a while to complete: - # dd if=/dev/urandom of=/dev/sdX; sync + `# dd if=/dev/urandom of=/dev/sdX; sync` 2. If the drive were previously encrypted, all you need to do is wipe the LUKS header. The size of the header depends upon the specific model of the hard drive; @@ -88,7 +91,7 @@ you can find this information by doing some research online. Refer to this [article](https://www.lisenet.com/2013/luks-add-keys-backup-and-restore-volume-header/), for more information about LUKS headers. You can either fill the header with zeroes, or with random data; again, I chose random data, using `urandom`: - # head -c 3145728 /dev/urandom > /dev/sdX; sync + `# head -c 3145728 /dev/urandom > /dev/sdX; sync` Also, if you're using an SSD, there are a two things you should keep in mind: @@ -105,7 +108,7 @@ We'll begin by creating a single, large partition on it, and then encrypting it You will need the `device-mapper` kernel module during the installation; this will enable us to set up our encrypted disk. To load it, use the following command: - # modprobe dm-mod + # modprobe dm-mod We then need to select the **device name** of the drive we're installing the operating system on; see the above method, if needed, for figuring out device names. @@ -113,7 +116,7 @@ see the above method, if needed, for figuring out device names. Now that we have the name of the correct device, we need to create the partition on it. For this, we will use the `cfdisk` command: - # cfdisk /dev/sdX + # cfdisk /dev/sdX 1. Use the arrow keys to select your partition, and if there is already a partition on the drive, select **Delete**, and then **New**. @@ -128,8 +131,8 @@ the partition table has been altered. Now that you have created the partition, it's time to create the encrypted volume on it, using the `cryptsetup` command, like this: - # cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash whirlpool \ - >--iter-time 500 --use-random --verify-passphrase luksFormat /dev/sdXY + # cryptsetup -v --cipher serpent-xts-plain64 --key-size 512 --hash whirlpool \ + >--iter-time 500 --use-random --verify-passphrase luksFormat /dev/sdXY These are just recommended defaults; if you want to use anything else, or to find out what options there are, run `man cryptsetup`. @@ -161,39 +164,39 @@ We will create this using, the [Logical Volume Manager (LVM)](https://wiki.archl First, we need to open the LUKS partition, at **/dev/mapper/lvm**: - # cryptsetup luksOpen /dev/sdXY lvm + # cryptsetup luksOpen /dev/sdXY lvm Then, we create LVM partition: - # pvcreate /dev/mapper/lvm + # pvcreate /dev/mapper/lvm Check to make sure tha the partition was created: - # pvdisplay + # pvdisplay Next, we create the volume group, inside of which the logical volumes will be created. For this example, we will call this group **matrix**. You can call yours whatever you would like; just make sure that you remember its name: - # vgcreate matrix /dev/mapper/lvm + # vgcreate matrix /dev/mapper/lvm Check to make sure that the group was created: - # vgdisplay + # vgdisplay Lastly, we need to create the logical volumes themselves, inside the volume group; one will be our swap, cleverly named **swapvol**, and the other will be our root partition, -equally cleverly named as **root**. +equally cleverly named as **rootvol**. 1. We will create the **swapvol** first (again, choose your own name, if you like). Also, make sure to [choose an appropriate swap size](http://www.linux.com/news/software/applications/8208-all-about-linux-swap-space) (e.g., **2G** refers to two gigabytes; change this however you see fit): - # lvcreate -L 2G matrix -n swapvol + `# lvcreate -L 2G matrix -n swapvol` -2. Now, we will create a single, large partition in the rest of the space, for **root**: +2. Now, we will create a single, large partition in the rest of the space, for **rootvol**: - # lvcreate -l +100%FREE matrix -n root + `# lvcreate -l +100%FREE matrix -n rootvol` You can also be flexible here, for example you can specify a **/boot**, a **/**, a **/home**, a **/var**, or a **/usr** volume. For example, if you will be running a @@ -203,43 +206,43 @@ For a home/laptop system (typical use case), just a root and a swap will do. Verify that the logical volumes were created correctly: - # lvdisplay + # lvdisplay -#### Make the root and swap Partitions Ready for Installation +#### Make the rootvol and swapvol Partitions Ready for Installation The last steps of setting up the drive for installation are turning **swapvol** -into an active swap partition, and formatting **root**. +into an active swap partition, and formatting **rootvol**. To make **swapvol** into a swap partition, we run the `mkswap` (i.e., make swap) command: - # mkswap /dev/mapper/matrix-swapvol + # mkswap /dev/mapper/matrix-swapvol Activate the **swapvol**, allowing it to now be used as swap, using `swapon` (i.e., turn swap on) command: - # swapon /dev/matrix/swapvol + # swapon /dev/matrix/swapvol -Now I have to format **root**, to make it ready for installation; +Now I have to format **rootvol**, to make it ready for installation; I do this with the `mkfs` (i.e., make file system) command. I choose the **ext4** filesystem, but you could use a different one, depending on your use case: - # mkfs.ext4 /dev/mapper/matrix-root + # mkfs.ext4 /dev/mapper/matrix-rootvol -Lastly, I need to mount **root**. Fortunately, GNU+Linux has a directory +Lastly, I need to mount **rootvol**. Fortunately, GNU+Linux has a directory for this very purpose: **/mnt**: - # mount /dev/matrix/root /mnt + # mount /dev/matrix/rootvol /mnt #### Create the /boot and /home Directories -Now that you have mounted **root**, you need to create the two most important +Now that you have mounted **rootvol**, you need to create the two most important folders on it: **/boot** and **/home**; these folder contain your boot files, as well as each user's personal documents, videos, etc.. -Since you mounted **root** at **/mnt**, this is where you must create them; +Since you mounted **rootvol** at **/mnt**, this is where you must create them; you will do so using `mkdir`: - # mkdir -p /mnt/home - # mkdir -p /mnt/boot + # mkdir -p /mnt/home + # mkdir -p /mnt/boot You could also create two separate partitions for **/boot** and **/home**, but such a setup would be for advanced users, and is thus not covered in this guide. @@ -251,7 +254,7 @@ The setup of the drive and partitions is now complete; it's time to actually ins The first step of the actual installation is to choose the server from where we will need to download the packages; for this, we will again refer to the [Parabola Wiki](https://wiki.parabola.nu/Beginners%27_guide#Select_a_mirror). For beginners, I recommend that the edit the file using `nano` (a command-line text editor); -you can learn more about it [here](https://www.nano-editor.org/); for non-beginners, +you can learn more about it on [their website](https://www.nano-editor.org/); for non-beginners, simply edit it with your favorite text editor. ## Install the Base System @@ -261,7 +264,7 @@ refer to [Install the Base System](https://wiki.parabola.nu/Beginners%27_guide#I ## Generate an fstab The next step in the process is to generate a file known as an **fstab**; the purpose of this file is for the operating system to identify the storage device -used by your installation. [Here](https://wiki.parabola.nu/Beginners%27_guide#Generate_an_fstab) are the instructions to generate that file. +used by your installation. [On the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Generate_an_fstab) are the instructions to generate that file. ## Chroot into and Configure the System Now, you need to `chroot` into your new installation, to complete the setup @@ -270,32 +273,33 @@ of an operating system to a different one; in this instance, it means changing directory to the one you created in the previous steps, so that you can modify files and install software onto it, as if it were the host operating system. -To `chroot` into your installation, follow the instructions [here](https://wiki.parabola.nu/Beginners%27_guide#Chroot_and_configure_the_base_system). +To `chroot` into your installation, follow the instructions [on the +Prabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Chroot_and_configure_the_base_system). ### Setting up the Locale Locale refers to the language that your operating system will use, as well as some other considerations related to the region in which you live. To set this up, -follow the instructions [here](https://wiki.parabola.nu/Beginners%27_guide#Locale). +follow the instructions [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Locale). ### Setting up the Consolefont and Keymap -This will determine the keyboard layout of your new installation; follow the instructions [here](https://wiki.parabola.nu/Beginners%27_guide#Console_font_and_keymap). +This will determine the keyboard layout of your new installation; follow the instructions [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Console_font_and_keymap). ### Setting up the Time Zone You'll need to set your current time zone in the operating system; this will enable applications that require accurate time to work properly (e.g., the web browser). -To do this, follow the instructions [here](https://wiki.parabola.nu/Beginners%27_guide#Time_zone). +To do this, follow the instructions [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Time_zone). ### Setting up the Hardware Clock To make sure that your computer has the right time, you'll have to set the time in your computer's internal clock. -Follow the instructions [here](https://wiki.parabola.nu/Beginners%27_guide#Hardware_clock) to do that. +Follow the instructions [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Hardware_clock) to do that. ### Setting up the Kernel Modules Now we need to make sure that the kernel has all the modules that it needs to boot the operating system. To do this, we need to edit a file called **mkinitcpio.conf**. -More information about this file can be found [here](https://wiki.parabola.nu/Mkinitcpio), +More information about this file can be found [in the Parabola beginner's guide](https://wiki.parabola.nu/Mkinitcpio), but for the sake of this guide, you simply need to run the following command. - # nano /etc/mkinitcpio.conf + # nano /etc/mkinitcpio.conf There are several modifications that we need to make to the file: @@ -325,41 +329,41 @@ that we encounter problems with the default Linux-Libre kernel (which is continu We will also install the `grub` package, which we will need later, to make our modifications to the GRUB configuration file: - # pacman -S linux-libre-lts grub + # pacman -S linux-libre-lts grub Then, we update both kernels like this, using the `mkinitcpio` command: - # mkinitcpio -p linux-libre - # mkinitcpio -p linux-libre-lts + # mkinitcpio -p linux-libre + # mkinitcpio -p linux-libre-lts ### Setting up the Hostname Now we need to set up the hostname for the system; this is so that our device -can be identified by the network. Refer to [this section](https://wiki.parabola.nu/Beginners%27_guide#Hostname) +can be identified by the network. Refer to [the hostname section](https://wiki.parabola.nu/Beginners%27_guide#Hostname) of the Parabola wiki's Beginner's Guide. You can make the hostname anything you like; for example, if you wanted to choose the hostname **parabola**, you would run the `echo` command, like this: - # echo parabola > /etc/hostname + # echo parabola > /etc/hostname And then you would modify **/etc/hosts** like this, adding the hostname to it: - # nano /etc/hosts + # nano /etc/hosts - #<ip-address> <hostname.domain.org> <hostname> - 127.0.0.1 localhost.localdomain localhost parabola - ::1 localhost.localdomain localhost parabola + #<ip-address> <hostname.domain.org> <hostname> + 127.0.0.1 localhost.localdomain localhost parabola + ::1 localhost.localdomain localhost parabola ### Configure the Network Now that we have a hostname, we need to configure the settings for the rest of the network. -Instructions for setting up a wired connection are [here](https://wiki.parabola.nu/Beginners%27_guide#Wired), -and instructions for setting up a wireless connection are [here](https://wiki.parabola.nu/Beginners%27_guide#Wireless_2). +Instructions for setting up a wired connection are [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Wired), +and instructions for setting up a wireless connection are [in the Parabola beginner's guide](https://wiki.parabola.nu/Beginners%27_guide#Wireless_2). ### Set the root Password The **root** account has control over all the files in the computer; for security, we want to protect it with a password. The password requirements given above, for the LUKS passphrase, apply here as well. You will set this password with the `passwd` command: - # passwd + # passwd ### Extra Security Tweaks There are some final changes that we can make to the installation, to make it @@ -369,7 +373,7 @@ significantly more secure; these are based on the [Security](https://wiki.archli We will want to open the configuration file for password settings, and increase the strength of our **root** password: - # nano /etc/pam.d/passwd + # nano /etc/pam.d/passwd Add `rounds=65536` at the end of the uncommented 'password' line; in simple terms, this will force an attacker to take more time with each password guess, mitigating @@ -380,7 +384,7 @@ You can prevent any user, other than the root user, from accessing the most impo directories in the system, using the `chmod` command; to learn more about this command, run `man chmod`: - # chmod 700 /boot /etc/{iptables,arptables} + # chmod 700 /boot /etc/{iptables,arptables} #### Lockout User After Three Failed Login Attempts We can also setup the system to lock a user's account, after three failed login attempts. @@ -388,16 +392,27 @@ We can also setup the system to lock a user's account, after three failed login To do this, we will need to edit the file **/etc/pam.d/system-login**, and comment out this line: - auth required pam\_tally.so onerr=succeed file=/var/log/faillog*\ + auth required pam\_tally.so onerr=succeed file=/var/log/faillog*\ You could also just delete it. Above it, put the following line: - auth required pam\_tally.so deny=2 unlock\_time=600 onerr=succeed file=/var/log/faillog + auth required pam\_tally.so deny=2 unlock\_time=600 onerr=succeed file=/var/log/faillog This configuration will lock the user out for ten minutes. You can unlock a user's account manually, using the **root** account, with this command: - # pam_tally --user *theusername* --reset + # pam_tally --user *theusername* --reset + +#### Generate grub.cfg +Edit configuration in `/etc/default/grub`, remembering to use UUID when poitning to mbr/gpt partition. +Use `blkid` to get list of devices with their respective UUIDs. +Next generate grub.cfg with + + # grub-mkconfig /boot/grub/grub.cfg + +If you have separate `/boot` partition, don't forget to add `boot` symlink inside that points to current directory + + # cd /boot; ln -s . boot ## Unmount All Partitions and Reboot Congratulations! You have finished the installation of Parabola GNU+Linux-Libre. @@ -405,51 +420,50 @@ Now it is time to reboot the system, but first, there are several preliminary st Exit from `chroot`, using the `exit` command: - # exit + # exit Unmount all of the partitions from **/mnt**, and "turn off" the swap volume: - # umount -R /mnt - # swapoff -a + # umount -R /mnt + # swapoff -a -Deactivate the **root** and **swapvol** logical volumes: +Deactivate the **rootvol** and **swapvol** logical volumes: - # lvchange -an /dev/matrix/root - # lvchange -an /dev/matrix/swapvol + # lvchange -an /dev/matrix/rootvol + # lvchange -an /dev/matrix/swapvol Lock the encrypted partition (i.e., close it): - # cryptsetup luksClose lvm + # cryptsetup luksClose lvm Shutdown the machine: - # shutdown -h now + # shutdown -h now After the machine is off, remove the installation media, and turn it on. -## Booting the New Installation, from GRUB -When starting your installation for the first time, you have to manually boot +## Booting the installation manually from GRUB +When you forget to configure or misconfigure grub on your hdd, you have to manually boot the system by entering a series of commands into the GRUB command line. + After the computer starts, Press `C` to bring up the GRUB command line. You can either boot the normal kernel, or the LTS kernel we installed; here are the commands for the normal kernel: - grub> cryptomount -a - grub> set root='lvm/matrix-root' - grub> linux /boot/vmlinuz-linux-libre root=/dev/matrix/root cryptdevice=/dev/sda1:root - grub> initrd /boot/initramfs-linux-libre.img - grub> boot + grub> cryptomount -a + grub> set root='lvm/matrix-rootvol' + grub> linux /boot/vmlinuz-linux-libre root=/dev/matrix/rootvol cryptdevice=/dev/sda1:root + grub> initrd /boot/initramfs-linux-libre.img + grub> boot If you're trying to boot the LTS kernel, simply add **-lts** to the end of each command that contains the kernel (e.g., **/boot/vmlinuz-linux-libre** would be **/boot/vmlinuz/linux-libre-lts**). -**NOTE: on some Thinkpads, during boot, a faulty DVD drive can cause -the** `cryptomount -a` **command to fail, as well as the error** `AHCI transfer timed out` -**(when the Thinkpad X200 is connected to an UltraBase). For both issues, -the workaround was to remove the DVD drive (if using the UltraBase, -then the whole device must be removed).** +**NOTE: on machines with native sata, during boot a (faulty) optical disc drive (like dvd) can cause +the** `cryptomount -a` **command to fail/hang, as well as the error** `AHCI transfer timed out` +**The workaround was to remove the DVD drive.** ## Follow-Up Tutorial: Configuring Parabola The next step of the setup process is to modify the configuration file that diff --git a/docs/gnulinux/encrypted_trisquel.md b/docs/gnulinux/encrypted_trisquel.md new file mode 100644 index 00000000..8768c5c7 --- /dev/null +++ b/docs/gnulinux/encrypted_trisquel.md @@ -0,0 +1,184 @@ +--- +title: Installing Trisquel GNU+Linux with Full-Disk Encryption (including /boot) +x-toc enable: true +... + +This guide is written for the Trisquel 7.0 (Belenos) GNU+Linux distribution, but it should also work for Trisquel 6.0 (Toutatis). + +## Boot the Installation Media +Boot your operating system, with the installation media. If you don't know how to do so, refer to [How to Prepare and Boot a USB Installer in Libreboot Systems](grub_boot_installer.md). + +When the Trisquel GRUB screen appears, select the `Install Trisquel in Text Mode` option. + +## Select a Language +The first part of the installation is to select your system's language; I chose `English`. + +## Select Your Location +You will need to select your location; I choose `United States`. + +## Configure the Keyboard +You need to select the right layout for your keyboard; if you want to installer to do it automatically, choose `Yes`, and it will ask you whether or not a series of keys are present on your keyboard. Simply choose `Yes` or `No`, accordingly. + +If you don't want the installer to automatically detect your keyboard layout, choose `No`, and simply select it from a list. + +## Configure the Network + +### Choose the Network Inteface +You will need to select the network interface to be used for the installation. If you have an ethernet (i.e., wired) connection, choose `etho0`; otherwise, choose `wlan0` (for wireless). + +If you choose `wlan0`, enter the passphrase that corresponds to your wireless network's WPA/WPA2 key (Your wireless network should have a password, and no modern router should be using the [WEP protocol](https://en.wikipedia.org/wiki/Wired_Equivalent_Privacy)). + +### Choose Your Hostname +You will need to choose a hostname for the system, which identifies your computer to the network; it can be anything, but it must only consist of numbers, uppercase and lowercase letters, and dashes `-`. + +### Choose a Mirror of the Trisquel Archive +Choose the server from where you will download the Trisquel packages needed for the installation. The choices are separated by country; simply select the one that is closest to where you are. + +After you select the country, you will be taken to a list of different individual servers. If there is more than one option, choose the one that is closest to you; otherwise, select whichever one is available. + +The last step of setting up the network will be entering an HTTP proxy (if you need one to access the network). If you have one, type it here; otherwise, press `Tab`, and then choose `Continue` (using the arrow keys). + +## Loading Additional Components +Now the installer needs to download some more packages, to continue the installation. Depending on your network bandwidth, this could take up to a few minutes to complete. + +## Set Up Users and Passwords +Enter the full name of the user here. You can use your real name, or just a pseudonym; then, choose `Continue`. + +Then it will ask you to enter a *username*. Pick whatever you like, and enter it here. Select `Continue`. + +Choose a passphrase (better than a password). The [diceware](http://world.std.com/~reinhold/diceware.html) method is highly recommended for coming up with one. + +I recommend combining the *diceware* method with something personal about yourself. An example of this would be to choose four words from the *diceware* list, and then come up with a fifth "word" (i.e., a combination of characters that is unique to you, like some name plus a number/special character); this combination dramatically increases the security of a *diceware* passphrase (i.e., even if someone had the entire *diceware* word list, they couldn't figure out your passphrase through brute force). + +**NOTE: This would be difficult for a person to do, even if you *only* used words from the list**. + +For example, say that your cat's name is **Max**, and he is three years old; you could do something like this: + + diceware_word_1 diceware_word_2 diceware_word_3 diceware_word_4 Max=3old + +This has a large degree of randomness (due to the usage of the *diceware* method), and also contains a unique piece of personal information that someone would need to know you, in order to guess; it's a very potent combination. + +After entering this password twice, choose `Continue`. + +It will now ask you if you want to encrypt your home directory. Remember, this is *NOT* to be confused with encrypting your entire disk (the purpose of this guide); it will just be the files that reside in `~`, and it uses a different encryption protocol (`ecryptfs`). If you want to encrypt your home directory here, choose `Yes`; however, since we are going to encrypt the entire installation, that would not only be redundant, but it would also add a noticeable performance penalty, for little security gain in most use cases. This is therefore optional, and *NOT* recommended. Choose `No`. + +## Configure the Clock +The installer will try to auto-detect your time zone; if it chooses correctly, select `Yes`; otherwise, choose `No`, and it will prompt you to select the correct one. + +## Partition Disks +Now it's time to partition the disk; you will be shown several options; choose `Manual` partitioning. + +1. Use the arrow keys to select the drive (look for a matching size and manufacturer name in the description), and press `Enter`. It will ask you if you want to create a new, empty partition table on the device; choose `Yes`. + +2. Your drive will now show as having a single partition, labeled `#1`; select it (it will say `FREE SPACE` beside it), and press `Enter`. + +3. Choose `Create a new partition`. By default, the partition size will be the whole drive; leave it as-is, and select `Continue`. + +4. When it asks for partition type, go with `Primary`; you'll be taken to a screen with a list of information about your new partition; make sure to fill out each field as follows (using the up and down arrows to navigate, and `Enter` to modify an option): + + * Use as: `physical volume for encryption` + * Encryption method: `Device-mapper (dm-crypt)` + * Encryption: `aes` + * key size: `256` + * IV algorithm: `xts-plain64` + * Encryption key: `passphrase` + * Erase data: `Yes` + + For the `Erase data` field, only choose `No`, if this is either a new drive that doesn't have any of your plaintext data, or else if it previously had full-disk encryption. + +5. Choose `Done setting up the partition`. It will take you back to the main partitioning menu. + +6. Choose `Configure encrypted volumes`; the installer will ask if you want to write the changes to disk, and configure the encrypted volumes; choose `Yes`. + +7. Select `Create encrypted volumes`. + +8. Select your partition with the arrow keys (pressing `Spacebar` will make an `*` appear between the brackets; that's how you know it's been selected). Press `Tab`, and choose `Continue`. + +9. Select `Finish`. You will be asked if you really want to erase the drive; choose `Yes` (Erase will take a long time, so be patient. If your old system were encrypted, just let this run for about a minute, and then choose `Cancel`; this will make sure that the LUKS header is completely wiped out). + +10. Now you need to enter a passphrase for encrypting the entire disk. Make sure that this is different from your user password that you created earlier, but still use the [diceware](http://world.std.com/~reinhold/diceware.html) method to create it. You will have to enter the password twice; afterwards, you will be returned to the main partitioning menu. + +11. You will now see your encrypted device at the top of the device list. It will begin with something like this: `Encrypted volume (sdXY_crypt)`. Choose the partition labeled `#1`. + +12. Change the value of `Use as` to `physical volume for LVM`. Then choose `Done setting up the partition`; you will be taken back to the main partitioning menu. + +13. Choose `Configure the Logical Volume Manager`. You will be asked if you want to `Keep current partition layout and configure LVM`; choose `Yes`. + +14. Choose `Create volume group`. You will have to enter a name for the group; use **grubcrypt**. Select the encrypted partition as the device (by pressing `Spacebar`, which will make an `*` appear between the brackets; that's how you know it's been selected). Press `Tab`, and choose `Continue`. + +15. Choose `Create logical volume`. Select the volume group you created in the previous step (i.e., **grubcrypt**), and name it **trisquel**; make the size the entire drive minus 2048 MB (for the swap space). Press `Enter`. + +16. Choose `Create logical volume` again, and select **grubcrypt**. Name this one **swap**, and make the size the default value (it should be about 2048MB). Press `Enter`, and then choose `Finish`. + +17. Now you are back at the main partitioning screen. You will simply set the mount points and filesystems to use for each partition you just created. Under `LVM VG grubcrypt, LV trisquel`, select the first partition: `#1`. Change the values in this section to reflect the following; then choose `Done setting up partition`: + + * use as: `ext4` + * mount point: `/` + +18. Under `LVM VG grubcrypt, LV swap`, select the first partition: `#1`. Change the value of `use as` to `swap area`. Choose `Done setting up partition`. + +19. Finally, when back at the main partitioning screen, choose `Finish partitioning and write changes to disk`. It will ask you to verify that you want to do this; choose `Yes`. + +## Installing the Base System +The hardest part of the installation is done; the installer will now download and install the packages necessary for your system to boot/run. The rest of the process will be mostly automated, but there will be a few things that you have to do yourself. + +### Choose a Kernel +It will ask you which kernel you want to use; choose `linux-generic`. + +**NOTE: After installation, if you want the most up-to-date version of the Linux kernel (Trisquel's kernel is sometimes outdated, even in the testing distro), you might consider using [this repository](https://jxself.org/linux-libre/) instead. These kernels are also deblobbed, like Trisquel's (meaning there are no binary blobs present).** + +### Update Policy +You have to select a policy for installing security updates; I recommend that you choose `Install security updates automatically`, but you can choose not to, if you prefer. + +### Choose a Desktop Environment +When prompted to choose a desktop environment, use the arrow keys to navigate the choices, and press `Spacebar` to choose an option; here are some guidelines: + +* If you want *GNOME*, choose **Trisquel Desktop Environment** +* If you want *LDXE*, choose **Trisquel-mini Desktop Environment** +* If you want *KDE*, choose **Triskel Desktop Environment** + +You might also want to choose some of the other package groups (or none of them, if you want a basic shell); it's up to you. Once you've chosen the option you want, press `Tab`, and then choose `Continue`. + +## Install the GRUB boot loader to the master boot record +The installer will ask you if you want to install the GRUB bootloader to the master boot record; choose `No`. You do not need to install GRUB at all, since in Libreboot, you are using the GRUB payload on the ROM to boot your system. + +The next window will prompt you to enter a `Device for boot loader installation`. Leave the line blank; press `Tab`, and choose `Continue`. + +## System Clock +The installer will ask if your system clock is set to UTC; choose `Yes`. + +## Finishing the Installation +The installer will now give you a message that the installation is complete. Choose `Continue`, remove the installation media, and the system will automatically reboot. + +## Booting your system +At this point, you will have finished the installation. At your GRUB boot screen, press `C` to get to the command line, and enter the following commands at the `grub>` prompt: + + grub> cryptomount -a + grub> set root='lvm/grubcrypt-trisquel' + grub> linux /vmlinuz root=/dev/mapper/grubcrypt-trisquel \ + >cryptdevice=/dev/mapper/grubcrypt-trisquel:root + grub> initrd /initrd.img + grub> boot + +Without specifying a device, **cryptomount's** `-a` parameter tries to unlock *all* detected LUKS volumes (i.e., any LUKS-encrypted device that is connected to the system). You can also specify `-u` (for a UUID). Once logged into the operating system, you can find the UUID by using the `blkid` command: + + $ sudo blkid + +## ecryptfs +If you didn't encrypt your home directory, then you can safely ignore this section; if you did choose to encrypt it, then after you log in, you'll need to run this command: + + $ sudo ecryptfs-unwrap-passphrase + +This will be needed in the future, if you ever need to recover your home directory from another system. Write it down, or (preferably) store it using a password manager (I recommend `keepass`,`keepasX`, or `keepassXC`). + +## Modify grub.cfg (CBFS) +The last step of the proccess is to modify your **grub.cfg** file (in the firmware), and flash the new configuration, [using this tutorial](grub_cbfs.md); this is so that you don't have to manually type in the commands above, every single time you want to boot your computer. You can also make your GRUB configuration much more secure, by following [this guide](grub_hardening.md). + +## Troubleshooting +During boot, some Thinkpads have a faulty DVD drive, which can cause the `cryptomount -a` command to fail, as well as the error `AHCI transfer timed out` (when the Thinkpad X200 is connected to an UltraBase). For both issues, the workaround was to remove the DVD drive (if using the UltraBase, then the whole device must be removed). + +Copyright © 2014, 2015 Leah Rowe <info@minifree.org> + +Copyright © 2017 Elijah Smith <esmith1412@posteo.net> + +Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License Version 1.3 or any later version published by the Free Software Foundation with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/gnulinux/grub_boot_installer.md b/docs/gnulinux/grub_boot_installer.md index 4d6ee92d..085ad34b 100644 --- a/docs/gnulinux/grub_boot_installer.md +++ b/docs/gnulinux/grub_boot_installer.md @@ -1,184 +1,131 @@ --- -title: How to Install GNU+Linux on a Libreboot System +title: How to Prepare and Boot a USB Installer on Libreboot Systems x-toc-enable: true ... -This section relates to preparing and booting a Live USB for several -GNU+Linux distributions, on your Libreboot system, using nothing more than a USB -flash drive and the `dd` utility. For information on installing GNU+Linux, -refer to [this page](index.md). +This guide explains how to prepare a bootable USB for Libreboot systems that can be used to install several GNU+Linux distributions. For this guide, you will only need a USB flash drive and the `dd` utility (it's installed into all GNU+Linux distributions, by default). -*This section is only for the GRUB payload. For depthcharge (used on -CrOS devices in libreboot), instructions have yet to be written in the -libreboot documentation.* +For information on actually installing specific GNU+Linux distributions, refer to [this page](index.md). -## Prepare the USB Drive (in GNU+Linux) -If you downloaded your ISO while on an existing GNU+Linux system, here is how -to create the bootable GNU+Linux USB drive: +## Prepare the USB Drive in GNU+Linux +If you downloaded your ISO while on an existing GNU+Linux system, here is how to create the bootable GNU+Linux USB drive: -Connect the USB drive. Check `dmesg`: +Connect the USB drive. Check `lsblk`, to confirm its device name (e.g., **/dev/sdX**): - $ dmesg + $ lsblk -Check `lsblk`, to confirm which drive it is: +For this example, let's assume that our drive's name is `sdb`. Make sure that it's not mounted: - $ lsblk + $ sudo umount /dev/sdb -Check that it wasn't automatically mounted. If it was, unmount it. For -example: +Overwrite the drive, writing your distro ISO to it with `dd`. For example, if we are installing Trisquel 7.0 64-bit, and it's located in our Downloads folder, this is the command we would run: - $ sudo umount /dev/sdX\* + $ sudo dd if=~/Downloads/trisquel_7.0_amd64.iso of=/dev/sdb bs=8M; sync -`dmesg` told you what device it is. Overwrite the drive, writing your -distro ISO to it with `dd`. Here is an example: +That's it! You should now be able to boot the installer from your USB drive (the instructions for doing so will be given later). - $ sudo dd if=gnulinux.iso of=/dev/sdX bs=8M; sync +## Prepare the USB drive in NetBSD +[This page](https://wiki.netbsd.org/tutorials how_to_install_netbsd_from_an_usb_memory_stick/) on the NetBSD website shows how to create a NetBSD bootable USB drive, from within NetBSD itself. You should the `dd` method documented there. This will work with any GNU+Linux ISO image. -You should now be able to boot the installer from your USB drive. -Continue reading, for information about how to do that. +## Prepare the USB drive in FreeBSD +[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on the FreeBSD website shows how to create a bootable USB drive for installing FreeBSD. Use the `dd` method documented. This will work with any GNU+Linux ISO image. -## Prepare the USB drive (in NetBSD) -[This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) -on the NetBSD website shows how to create a NetBSD bootable USB drive, -from within NetBSD itself. You should use the `dd` method documented there. -This will also work with any GNU+Linux ISO image. - -## Prepare the USB drive (in FreeBSD) -[This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on -the FreeBSD website shows how to create a bootable USB drive for -installing FreeBSD. Use the `dd` command format on that page. -You can also use the same instructions with any GNU+Linux ISO image.. - -## Prepare the USB drive (in LibertyBSD or OpenBSD) +## Prepare the USB drive in LibertyBSD or OpenBSD If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to create the bootable GNU+Linux USB drive: -Connect the USB drive. Check `dmesg`: +Connect the USB drive. Run `lsblk` to determine which drive it is: - $ dmesg | tail + $ lsblk -Check to confirm which drive it is, for example, if you think its **sd3**: +To confirm that you have the correct drive, use `disklabel`. For example, if you thought the correct drive were **sd3**, run this command: - $ disklabel sd3 + $ disklabel sd3 -Check that it wasn't automatically mounted. If it was, unmount it. For -example: +Make sure that the device isn't mounted, with `doas`; if it is, this command will unmount it: - $ doas umount /dev/sd3i + $ doas umount /dev/sd3i -`dmesg` told you what device it is. Overwrite the drive, writing the -OpenBSD installer to it with `dd`. For example: +`lsblk` told you what device it is. Overwrite the drive, writing the OpenBSD installer to it with `dd`. Here's an example: - $ doas dd if=gnulinux.iso of=/dev/rsdXc bs=1M; sync + $ doas dd if=gnulinux.iso of=/dev/rsdXc bs=1M; sync -You should now be able to boot the installer from your USB drive. -Continue reading, for information about how to do that. +That's it! You should now be able to boot the installer from your USB drive (the instructions for doing so will be given later). -## Debian or Devuan net install? -Download the Debian or Devuan net installer. You can download the ISO -from the homepage on [debian.org](https://www.debian.org/), or [the Devuan homepage](https://www.devuan.org/) for Devuan. Use this on the -GRUB terminal, to boot it from USB (for 64-bit Intel or AMD): +## Debian or Devuan net install +1. Download the Debian or Devuan net installer. You can download the Debian ISO from [the Debian homepage](https://www.debian.org/), or the Devuan ISO from [the Devuan homepage](https://www.devuan.org/). - set root='usb0' - linux /install.amd/vmlinuz - initrd /install.amd/initrd.gz - boot +2. Create a bootable USB, using the commands in *Prepare the USB Drive in GNU+Linux*, above. -If you are on a 32-bit system (e.g. some Thinkpad X60's): +3. Boot the USB, and enter these commands in the GRUB terminal (for 64-bit Intel or AMD): - set root='usb0' - linux /install.386/vmlinuz - initrd /install.386/initrd.gz - boot + grub> set root='usb0' + grub> linux /install.amd/vmlinuz + grub> initrd /install.amd/initrd.gz + grub> boot -## Booting ISOLINUX Images +4. If you are on a 32-bit system (e.g. some Thinkpad X60's), you will need to use these commands: -### Automatic Method -Boot it in GRUB using the *Parse ISOLINUX config (USB)* option. A new -menu should appear in GRUB, showing the boot options for that distro; -this is a GRUB menu, converted from the usual ISOLINUX menu provided by -that distro. + grub> set root='usb0' + grub> linux /install.386/vmlinuz + grub> initrd /install.386/initrd.gz + grub> boot -### Manual Method -These are generic instructions. They may or may not be correct for your -distribution. You must adapt them appropriately, for whatever GNU+Linux -distribution it is that you are trying to install. +## Booting ISOLINUX Images (Automatic Method) +Boot it in GRUB using the `Parse ISOLINUX config (USB)` option. A new menu should appear in GRUB, showing the boot options for that distro; this is a GRUB menu, converted from the usual ISOLINUX menu provided by that distro. -If the ISOLINUX parser or *Search for GRUB configuration* options won't -work, then press C in GRUB to access the command line: +## Booting ISOLINUX Images (Manual Method) +These are generic instructions. They may or may not be correct for your distribution. You must adapt them appropriately, for whatever GNU+Linux distribution it is that you are trying to install. - grub> ls +If the `ISOLINUX parser` or `Search for GRUB configuration` options won't work, then press `C` in GRUB to access the command line, then run the `ls` command: -Get the device from above output, eg (usb0). Example: + grub> ls - grub> cat (usb0)/isolinux/isolinux.cfg +Get the device name from the above output (e.g., `usb0`). Here's an example: -Either this will show the ISOLINUX menuentries for that ISO, or link to -other .cfg files, for example /isolinux/foo.cfg. + grub> cat (usb0)/isolinux/isolinux.cfg -If it did that, then you do: +Either the output of this command will be the ISOLINUX menuentries for that ISO, or link to other `.cfg` files (e.g, **/isolinux/foo.cfg**). For example, if the file found were **foo.cfg**, you would use this command: - grub> cat (usb0)/isolinux/foo.cfg + grub> cat (usb0)/isolinux/foo.cfg -And so on, until you find the correct menuentries for ISOLINUX. *The file -`/isolinux/foo.cfg` is a fictional example. Do not actually use this example, -unless you actually have that file, if it is appropriate.* +And so on, until you find the correct menuentries for ISOLINUX. -For Debian or Devuan (and other Debian-based distros), there are typically -menuentries listed in */isolinux/txt.cfg* or */isolinux/gtk.cfg*. For -dual-architecture ISO images (i686 and x86\_64), there may be separate -files/directories for each architecture. Just keep searching through the -image, until you find the correct ISOLINUX configuration file. +For Debian-based distros (e.g., Trisquel, Devuan), there are typically menuentries listed in **/isolinux/txt.cfg** or **/isolinux/gtk.cfg**. For dual-architecture ISO images (i686 and x86\_64), there may be separate files directories for each architecture. Just keep searching through the image, until you find the correct ISOLINUX configuration file. **NOTE: Debian 8.6 ISO only lists 32-bit boot options in txt.cfg. This is important, if you want 64-bit booting on your system. Devuan versions based on Debian 8.x may also have the same issue.** -Now, look at the ISOLINUX menuentry. It'll look like this: +Now, look at the ISOLINUX menuentry; it'll look like this: - kernel /path/to/kernel append PARAMETERS initrd=/path/to/initrd ... + kernel /path/to/kernel append PARAMETERS initrd=/path/to/initrd ... GRUB works similarly; here are some example GRUB commands: - grub> set root='usb0' - grub> linux /path/to/kernel PARAMETERS MAYBE\_MORE\_PARAMETERS - grub> initrd /path/to/initrd - grub> boot + grub> set root='usb0' + grub> linux /path/to/kernel PARAMETERS MAYBE\_MORE\_PARAMETERS + grub> initrd /path/to/initrd + grub> boot -Note: `usb0` may be incorrect. Check the output of the `ls` command (in -GRUB), to see a list of USB devices/partitions. Of course, this will vary -from distro to distro. If you did all of that correctly, then it should -now be booting your USB drive in the way that you specified. +Note: `usb0` may be incorrect. Check the output of the `ls` command (in GRUB), to see a list of USB devices/partitions. Of course, this will vary from distro to distro. If you did all of that correctly, then it should now be booting your USB drive in the way that you specified. ## Troubleshooting -Most of these issues occur when using Libreboot with Coreboot's 'text -mode' instead of the Coreboot framebuffer. This mode is useful for -booting payloads, like `MemTest86+`, which expect text-mode, but for -GNU+Linux distributions, it can be problematic when they are trying to -switch to a framebuffer, because it doesn't exist. +Most of these issues occur when using Libreboot with Coreboot's `text-mode`, instead of the Coreboot framebuffer. This mode is useful for booting payloads, like `MemTest86+`, which expect `text-mode`, but for GNU+Linux distributions, it can be problematic when they are trying to switch to a framebuffer, because it doesn't exist. -In most cases, you should use the **vesafb** ROM images. Example filename: -**libreboot\_ukdvorak\_vesafb.rom**. +In most cases, you should use the **vesafb** ROM images. An example filename would be **libreboot\_ukdvorak\_vesafb.rom**. ### Parabola Won't Boot in Text-Mode -Use one of the ROM images with vesafb in the filename (uses coreboot -framebuffer instead of text-mode). +Use one of the ROM images with `vesafb` in the filename (uses Coreboot framebuffer, instead of `text-mode`). ### debian-installer Graphical Corruption in Text-Mode (Debian and Devuan) -When using the ROM images that use Coreboot's "text mode" instead of -the coreboot framebuffer, booting the Debian or Devuan net installer -results in graphical corruption, because it is trying to switch to a -framebuffer, which doesn't exist. Use that kernel parameter on the -`linux` line, when booting it: +When using the ROM images that use Coreboot's `text mode`, instead of the Coreboot framebuffer, booting the Debian or Devuan net installer results in graphical corruption, because it is trying to switch to a framebuffer, which doesn't exist. Use that kernel parameter on the `linux` line, when booting it: - vga=normal fb=false + vga=normal fb=false -This forces debian-installer to start in text-mode, instead of trying to -switch to a framebuffer. +This forces debian-installer to start in `text-mode`, instead of trying to switch to a framebuffer. -If selecting text-mode from a GRUB menu created using the ISOLINUX -parser, you can press `E` on the menu entry to add this. Or, if you are -booting manually (from GRUB terminal), then just add the parameters. +If selecting `text-mode` from a GRUB menu created using the ISOLINUX parser, you can press `E` on the menu entry to add this. Or, if you are booting manually (from GRUB terminal), then just add the parameters. -This workaround was found on the [Debian site](https://www.debian.org/releases/stable/i386/ch05s04.html). It should also work for Devuan, and any other `apt-get` distro that provides the debian-installer (text mode) net install method. +This workaround was found on the [Debian site](https://www.debian.org/releases/stable/i386/ch05s04.html). It should also work for Devuan, and any other `apt-get` distro that provides the debian-installer (i.e., text-mode) net install method. Copyright © 2014, 2015, 2016 Leah Rowe <info@minifree.org> @@ -186,10 +133,4 @@ Copyright © 2016 Scott Bonds <scott@ggr.com> Copyright © 2017 Elijah Smith <esmith1412@posteo.net> -Permission is granted to copy, distribute and/or modify this document -under the terms of the GNU Free Documentation License Version 1.3 or any later -version published by the Free Software Foundation -with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. -A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) - - +Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License Version 1.3 or any later version published by the Free Software Foundation with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) diff --git a/docs/gnulinux/grub_cbfs.md b/docs/gnulinux/grub_cbfs.md index d3222e66..5283b4fc 100644 --- a/docs/gnulinux/grub_cbfs.md +++ b/docs/gnulinux/grub_cbfs.md @@ -24,18 +24,18 @@ However, both ways will require us to download the Libreboot Utility Archive. ### Download the Libreboot Utility Archive The Libreboot Utility Archive contains the programs that we'll need to get our **grubtest.cfg** file. The latest release of the Libreboot Utility Archive -can be downloaded from libreboot.org, [here](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/libreboot_r20160907_util.tar.xz). +can be downloaded [from libreboot.org](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/libreboot_r20160907_util.tar.xz). The quickest way to download it would be to use the `wget` program, which (if you don't know) allows you to download files from the internet. If you don't already have it installed, you can install it, using the `apt-get` command (in Debian-based distributions): - $ sudo apt-get install wget + $ sudo apt-get install wget You can install it in Arch-based systems, using `pacman`: - $ sudo pacman -S wget + $ sudo pacman -S wget Once you've installed `wget`, use it to download the file, simply by passing it the URL as an argument; you can save the file anywhere, @@ -43,23 +43,23 @@ but for the purpose of this guide, save it in **~/Downloads** (your **Home** directory's downloads folder). First, change the current working directory to **~/Downloads**: - $ cd ~/Downloads + $ cd ~/Downloads This guide assumes you are using the **20160907** version of Libreboot; if using a different version, modify the following commands accordingly: - $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/\ - >libreboot_r20160907_util.tar.xz + $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/\ + >libreboot_r20160907_util.tar.xz After the file is downloaded, use the `tar` command to extract its contents: - $ tar -xf libreboot_r20160907_util.tar.xz + $ tar -xf libreboot_r20160907_util.tar.xz After extraction, the folder will have the same name as the archive: in this case, **libreboot\_r20160907\_util**. For simplicity's sake, we'll rename it **libreboot\_util**, using the `mv` command: - $ mv "libreboot_r20160907_util" "libreboot_util" + $ mv "libreboot_r20160907_util" "libreboot_util" Now you have the folder with all the utilities necessary to read and modify the contents of the ROM. @@ -78,11 +78,11 @@ You could also compile both of these utilities; see [How to Build flashrom](../g `flashrom` is also available from the repositories; if using an Arch-based distribution, use `pacman`: - $ sudo pacman -S flashrom + $ sudo pacman -S flashrom Or, if you have a Debian-based distribution, use `apt-get`: - $ sudo apt-get install flashrom + $ sudo apt-get install flashrom ### Get the ROM Image You can either work directly with one of the ROM images already included @@ -93,7 +93,7 @@ image file is named **libreboot.rom**, so please make sure to adapt. There are two ways to get a pre-compiled ROM image: #### 1. Download a Pre-Compiled Image from the Libreboot Website -For the current release, **20160907**, they can be found [here](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/rom/grub/); +For the current release, **20160907**, they can be found [on a Libreboot mirror](https://www.mirrorservice.org/sites/libreboot.org/release/stable/20160907/rom/grub/); please adopt this guide, if using a different version of Libreboot. You also need to make sure that you select both the correct ROM for the device you're using, @@ -102,12 +102,12 @@ variable flash chip sizes only apply for the Thinkpads that Libreboot supports ( You can find the flash chip size, by running the following command: - # flashrom -p internal -V + # flashrom -p internal -V Look for a line like this: - Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) \ - mapped at physical address 0x00000000ff800000. + Found Macronix flash chip "MX25L6406E/MX25L6408E" (8192 kB, SPI) \ + mapped at physical address 0x00000000ff800000. Running this command on my Thinkpad X200 gives me the above result, so I know that my flash chip size is **8mb**. @@ -118,30 +118,30 @@ to download the correct ROM images for that model. First, we're going to navigate to the **libreboot\_util** folder: - $ cd ~/Downloads/libreboot_util/ + $ cd ~/Downloads/libreboot_util/ Then, we will download the ROM images, using `wget`: - $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/\ - 20160907/rom/grub/libreboot_r20160907_grub_x200_8mb.tar.xz + $ wget https://www.mirrorservice.org/sites/libreboot.org/release/stable/\ + >20160907/rom/grub/libreboot_r20160907_grub_x200_8mb.tar.xz Extract the archive, using `tar`: - $ tar -xf libreboot_r20160907_grub_x200_8mb.tar.xz + $ tar -xf libreboot_r20160907_grub_x200_8mb.tar.xz Navigate to the directory that you just created: - $ cd libreboot_r20160907_grub_x200_8mb + $ cd libreboot_r20160907_grub_x200_8mb Now that we are in the archive, we must choose the correct ROM image. To figure out the correct image, we must first parse the filenames for each ROM. For example, for the file named **x200_8mb_usqwerty_vesafb.rom**: - Model Name: x200 - Flash Chip Size: 8mb - Country: us - Keyboard Layout: qwerty - ROM Type: vesafb or txtmode + Model Name: x200 + Flash Chip Size: 8mb + Country: us + Keyboard Layout: qwerty + ROM Type: vesafb or txtmode Since I am using a QWERTY keyboard, I will ignore all the non-QWERTY options. Note that there are two types of ROMs: **vesafb** and **txtmode**; @@ -152,19 +152,19 @@ used by coreboot native graphics initialization. I'll choose **x200_8mb_usqwerty_vesafb.rom**; I'll copy the file (to the `cbfstool` directory), and rename it with one command: - $ mv "x200_8mb_usqwerty_vesafb.rom" ../cbfstool/x86_64/cbfstool/x86_64/libreboot.rom + $ mv "x200_8mb_usqwerty_vesafb.rom" ../cbfstool/x86_64/cbfstool/x86_64/libreboot.rom #### 2. Create an Image from the Current ROM The simpler way to get a ROM image is to just create it from your current ROM, using `flashrom`, making sure to save it in the `cbfstool` folder, inside **libreboot\_util**: - $ sudo flashrom -p internal -r ~/Downloads/libreboot_util/cbfstool/\ - x86_64/cbfstool/x86_64/libreboot.rom + $ sudo flashrom -p internal -r ~/Downloads/libreboot_util/cbfstool/\ + >x86_64/cbfstool/x86_64/libreboot.rom If you are told to specify the chip, add the option `-c {your chip}` to the command, like this: - $ sudo flashrom -c MX25L6405 -p internal -r ~/Downloads/libreboot_util/\ - cbfstool/x86_64/cbfstool/x86_64/libreboot.rom + $ sudo flashrom -c MX25L6405 -p internal -r ~/Downloads/libreboot_util/\ + >cbfstool/x86_64/cbfstool/x86_64/libreboot.rom Now you are ready to extract the GRUB configuration files from the ROM, and modify them the way you want. @@ -173,12 +173,12 @@ Now you are ready to extract the GRUB configuration files from the ROM, and modi You can check the contents of the ROM image, inside CBFS, using `cbfstool`. First, navigate to the cbfstool folder: - $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/ + $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/ Then, run the `cbfstool` commmand, with the `print` option; this will display a list of all the files located in the ROM: - $ ./cbfstool libreboot.rom print + $ ./cbfstool libreboot.rom print You should see **grub.cfg** and **grubtest.cfg** in the list. **grub.cfg** is loaded by default, with a menu entry for switching to **grubtest.cfg**. In @@ -187,7 +187,7 @@ reduce the possibility of bricking your device, so *DO NOT SKIP THIS!* Extract (i.e., get a copy of ) **grubtest.cfg** from the ROM image: - $ ./cbfstool libreboot.rom extract -n grubtest.cfg -f grubtest.cfg + $ ./cbfstool libreboot.rom extract -n grubtest.cfg -f grubtest.cfg By default `cbfstool` will extract files to the current working directory; so, **grubtest.cfg** should appear in the same folder as **libreboot.rom**. @@ -199,27 +199,27 @@ or the one located in the ROM, the modifications will be the same. Once the file is open, look for the following line (it will be towards the bottom of the file): - menuentry 'Load Operating System [o]' --hotkey='o' --unrestricted + menuentry 'Load Operating System [o]' --hotkey='o' --unrestricted After this line, there will be an opening bracket **{**, followed by a several lines of code, and then a closing bracket **}**; delete everything that is between those two brackets, and replace it with the following code, if you're using an Arch-based disribution (e.g., Parabola GNU+Linux-Libre): - cryptomount -a - set root='lvm/matrix-root' - linux /boot/vmlinuz-linux-libre root=/dev/matrix/root cryptdevice=/dev/sda1:root \ - cryptkey=rootfs:/etc/mykeyfile - initrd /boot/initramfs-linux-libre.img + cryptomount -a + set root='lvm/matrix-root' + linux /boot/vmlinuz-linux-libre root=/dev/matrix/root cryptdevice=/dev/sda1:root \ + cryptkey=rootfs:/etc/mykeyfile + initrd /boot/initramfs-linux-libre.img Or, replace it with this, if you are using a Debian-based distribution (e.g., Trisquel GNU+Linux): - cryptomount -a - set root='lvm/matrix-rootvol' - linux /vmlinuz root=/dev/mapper/matrix-rootvolcryptdevice=/dev/mapper/matrix-rootvol:root - initrd /initrd.img + cryptomount -a + set root='lvm/matrix-rootvol' + linux /vmlinuz root=/dev/mapper/matrix-rootvolcryptdevice=/dev/mapper/matrix-rootvol:root + initrd /initrd.img Remember, that these names come from the instructions to install GNU+Linux -on Libreboot systems, located [here](index.md). If you followed different instructions, +on Libreboot systems, located [in the docs](index.md). If you followed different instructions, (or for some other reason, used different names), simply put the names of your **root** and **swap** volumes, in place of the ones used here. @@ -243,8 +243,8 @@ the main storage for **/boot/grub/libreboot\_grub.cfg** or **/grub/libreboot\_gr Therefore, we need to either copy **libreboot\_grub.cfg** to **/grub**, or to **/boot/grub**: - $ sudo cp ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/grubtest.cfg \ - >/boot/grub # or /grub + $ sudo cp ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/grubtest.cfg \ + >/boot/grub # or /grub Now, the next time we boot our computer, GRUB (in Libreboot) will automatically switch to this configuration file. *This means that you do not have to re-flash, @@ -259,11 +259,11 @@ Now that you have the modified **grubtest.cfg**, we need to remove the old **grubtest.cfg** from the ROM, and put in our new one. To remove the old one, we will use `cbfstool`: - $ ./cbfstool libreboot.rom remove -n grubtest.cfg + $ ./cbfstool libreboot.rom remove -n grubtest.cfg Then, add the new one to the ROM: - $ ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t raw + $ ./cbfstool libreboot.rom add -n grubtest.cfg -f grubtest.cfg -t raw #### Change MAC address in ROM The last step before flashing the new ROM, is to change the MAC address inside it. @@ -286,12 +286,12 @@ and look for a set of characters like this: `00:f3:f0:45:91:fe`. Next, you need to move **libreboot.rom** to the following folder; this is where the executable for `ich9gen` is located: - $ mv libreboot.rom ~/Downloads/libreboot_r20160907_util/ich9deblob/ + $ mv libreboot.rom ~/Downloads/libreboot_r20160907_util/ich9deblob/x86_64 Once there, run the following command, making sure to use your own MAC address, instead of what's written below: - $ ./ich9gen --macaddress XX:XX:XX:XX:XX:XX + $ ./ich9gen --macaddress XX:XX:XX:XX:XX:XX Three new files will be created: @@ -304,11 +304,11 @@ if your flash chip size is **8mb**, you'll want to use **ich9fdgbe_8m.bin**. Now, insert this file (called the `descriptor+gbe`) into the ROM image, using `dd`: - dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k conv=notrunc + $ dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k conv=notrunc Move **libreboot.rom** back to the **libreboot\_util** directory: - $ mv libreboot.rom ~/Downloads/libreboot_util + $ mv libreboot.rom ~/Downloads/libreboot_util You are finally ready to flash the ROM! @@ -316,18 +316,18 @@ You are finally ready to flash the ROM! The last step of flashing the ROM requires us to change our current working directory to **libreboot\_util**: - $ cd ~/Downloads/libreboot_util + $ cd ~/Downloads/libreboot_util Now, all we have to do is use the `flash` script in this directory, with the `update` option, using **libreboot.rom** as the argument: - $ sudo ./flash update libreboot.rom + $ sudo ./flash update libreboot.rom Ocassionally, coreboot changes the name of a given board. If `flashrom` complains about a board mismatch, but you are sure that you chose the correct ROM image, then run this alternative command: - $ sudo ./flash forceupdate libreboot.rom + $ sudo ./flash forceupdate libreboot.rom You will see the `flashrom` program running for a little while, and you might see errors, but if it says `Verifying flash... VERIFIED` at the end, then it’s flashed, @@ -354,11 +354,11 @@ of **grubtest.cfg**, called **grub.cfg**. First, go to the `cbfstool` directory: - $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/ + $ cd ~/Downloads/libreboot_util/cbfstool/x86_64/cbfstool/x86_64/ Then, create a copy of **grubest.cfg**, named **grub.cfg**: - $ cp grubtest.cfg ./grub.cfg + $ cp grubtest.cfg ./grub.cfg Now you will use the `sed` command to make several changes to the file: the menu entry `'Switch to grub.cfg'` will be changed to `Switch to grubtest.cfg`, @@ -367,25 +367,25 @@ This is so that the main configuration still links (in the menu) to **grubtest.c so that you don't have to manually switch to it, in case you ever want to follow this guide again in the future (modifying the already modified config).: - $ sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e \ - >'s:Switch to grub.cfg:Switch to grubtest.cfg:g' < grubtest.cfg > \ - >grub.cfg + $ sed -e 's:(cbfsdisk)/grub.cfg:(cbfsdisk)/grubtest.cfg:g' -e \ + >'s:Switch to grub.cfg:Switch to grubtest.cfg:g' < grubtest.cfg > \ + >grub.cfg Move **libreboot.rom** from **libreboot\_util** to your current directory: - $ mv ~/Downloads/libreboot_util/libreboot.rom . + $ mv ~/Downloads/libreboot_util/libreboot.rom . Delete the **grub.cfg** that's already inside the ROM: - $ ./cbfstool libreboot.rom remove -n grub.cfg + $ ./cbfstool libreboot.rom remove -n grub.cfg Add your modified **grub.cfg** to the ROM: - $ ./cbfstool libreboot.rom add -n grub.cfg -f grub.cfg -t raw + $ ./cbfstool libreboot.rom add -n grub.cfg -f grub.cfg -t raw Move **libreboot.rom** back to **libreboot\_util**: - $ mv libreboot.rom ../.. + $ mv libreboot.rom ../.. If you don't remember how to flash it, refer back to the *Flash Updated ROM Image*, above; it's the same method as you used before. Afterwards, reboot the machine with your new configuration. diff --git a/docs/gnulinux/index.md b/docs/gnulinux/index.md index fac3006a..f8738d4a 100644 --- a/docs/gnulinux/index.md +++ b/docs/gnulinux/index.md @@ -2,24 +2,29 @@ title: GNU+Linux Installation Instructions ... -This section explains how to deal with various GNU+Linux distributions -in Libreboot (e.g., Creating bootable USB drives, Installing Operating Systems, -Changing the default GRUB menu, etc.). +This section explains how to deal with various operating systems (both GNU+Linux and non-GNU+Linux) in Libreboot (e.g., Creating bootable USB drives, Installing Operating Systems, Changing the default GRUB menu, etc.). -**NOTE: This section is only for the GRUB payload. For depthcharge -(used on CrOS devices in libreboot), instructions have yet to be written.** +**NOTE: This section is only for the GRUB payload. For the depthcharge payload (used on CrOS devices, like the ASUS C201 Chromebook), instructions have yet to be written.** -- [How to Install GNU+Linux on a Libreboot System](grub_boot_installer.md) +Libreboot uses the GRUB payload by default, which means that the GRUB configuration file (where your GRUB menu comes from) is stored directly alongside Libreboot and its GRUB payload executable, inside the flash chip. In context, this means that installing distributions and managing them is handled slightly differently compared to traditional BIOS systems. -- [Modifying the GRUB Configuration in Libreboot Systems](grub_cbfs.md) +On most systems, **/boot** (the folder that contains all the files needed for your operating system to boot) has to be on its own partition, and left unencrypted (while the other partitions are encrypted); this is so that GRUB (and therefore the kernel) can be loaded and executed, since traditional firmware can't open a LUKS volume. -- [Installing Parabola or Arch Gnu+Linux-Libre, with Full-Disk Encryption (including /boot)](encrypted_parabola.md) - - - Follow-Up Tutorial: [Configuring Parabola (Post-Install)](configuring_parabola.md) +However, with Libreboot, GRUB is already included directly (as a payload), so even **/boot** can be encrypted; this protects **/boot** from tampering by someone with physical access to the machine. -- [Installing Debian or Devuan GNU+Linux-Libre, with Full-Disk Encryption (including /boot)](encrypted_debian.md) +- [How to Prepare and Boot a USB Installer in Libreboot Systems](grub_boot_installer.md) -- [How to Harden Your GRUB Configuration, for Security](grub_hardening.md) +- [Modifying the GRUB Configuration in Libreboot Systems](grub_cbfs.md) + +- [Installing Parabola or Arch GNU+Linux-Libre, with Full-Disk Encryption (including /boot)](encrypted_parabola.md) + + - Follow-Up Tutorial: [Configuring Parabola (Post-Install)](configuring_parabola.md) + +- [Installing Trisquel GNU+Linux-Libre, with Full-Disk Encryption (including /boot)](encrypted_trisquel.md) + +- [Installing Debian or Devuan GNU+Linux-Libre, with Full-Disk Encryption (including /boot)](encrypted_debian.md) + +- [How to Harden Your GRUB Configuration, for Security](grub_hardening.md) Copyright © 2014, 2015 Leah Rowe <info@minifree.org> @@ -30,4 +35,3 @@ under the terms of the GNU Free Documentation License Version 1.3 or any later version published by the Free Software Foundation with no Invariant Sections, no Front Cover Texts, and no Back Cover Texts. A copy of this license is found in [../fdl-1.3.md](../fdl-1.3.md) - diff --git a/docs/hardware/c201.md b/docs/hardware/c201.md index f827465e..f268e6f6 100644 --- a/docs/hardware/c201.md +++ b/docs/hardware/c201.md @@ -73,21 +73,21 @@ supported by Libreboot. Caution: Video acceleration requires a non-free blob, software rendering can be used instead. ============================================================================================= -The Tamil driver source code for the onboard Mali T GPU is not released. -The developer has so-far withheld it. Until that is released, the only -way to use video (in freedom) on this laptop is to not have video -acceleration, by making sure not to install the relevant blob. Most -tasks can still be performed without video acceleration, without any -noticeable performance penalty. +The C201 has a Mali T GPU, which requires a non-free blob. A driver, +Tamil, was written, but its source code has not been released. The +developer has so-far [withheld +it](http://libv.livejournal.com/27461.html). Use software rendering to +avoid the blob instead. Most tasks can still be performed without video +acceleration, without any noticeable performance penalty. In practise, this means that certain things like games, blender and GNOME shell (or other fancy desktops) won't work well. The libreboot project recommends a lightweight desktop which does not need video acceleration, such as *XFCE* or *LXDE*. -The Tamil developer wrote this blog post, which sheds light on the -story: -[http://libv.livejournal.com/27461.html,http://libv.livejournal.com/27461.html](http://libv.livejournal.com/27461.html). +As it is unlikely that Tamil will be released, the +[chai](https://notabug.org/cafe/chai) project is writing a driver as +well. Ask on IRC if you think you can contribute. Caution: WiFi requires a non-free blob, a USB dongle can be used instead. ========================================================================= @@ -99,7 +99,7 @@ The libreboot project recommends using an external USB wifi dongle that works with free software. See [\#recommended\_wifi](./#recommended_wifi). -There are 2 companies (endorsed by Creative Commons, under their +There are 2 companies (endorsed by Free Software Foundation, under their *Respects your Freedom* guidelines), that sell USB WiFi dongles guaranteed to work with free software (i.e. linux-libre kernel): diff --git a/docs/hardware/gm45_remove_me.md b/docs/hardware/gm45_remove_me.md index ad969919..f7ddfe55 100644 --- a/docs/hardware/gm45_remove_me.md +++ b/docs/hardware/gm45_remove_me.md @@ -90,21 +90,15 @@ file to where **libreboot.rom** is located and then insert the descriptor+gbe file into the ROM image.\ For 16MiB flash chips: - # dd if=ich9fdgbe_16m.bin of=libreboot.rom bs=1 count=12k - -conv=notrunc + # dd if=ich9fdgbe_16m.bin of=libreboot.rom bs=12k count=1 conv=notrunc For 8MiB flash chips: - # dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=1 count=12k - -conv=notrunc + # dd if=ich9fdgbe_8m.bin of=libreboot.rom bs=12k count=1 conv=notrunc For 4MiB flash chips: - # dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=1 count=12k - -conv=notrunc + # dd if=ich9fdgbe_4m.bin of=libreboot.rom bs=12k count=1 conv=notrunc Your libreboot.rom image is now ready to be flashed on the system. Refer back to [../install/\#flashrom](../install/#flashrom) for how to flash @@ -116,20 +110,20 @@ Write-protecting the flash chip Look in *resources/utilities/ich9deblob/src/descriptor/descriptor.c* for the following lines in the *descriptorHostRegionsUnlocked* function: - descriptorStruct.masterAccessSection.flMstr1.fdRegionWriteAccess = 0x1; - descriptorStruct.masterAccessSection.flMstr1.biosRegionWriteAccess = 0x1; - descriptorStruct.masterAccessSection.flMstr1.meRegionWriteAccess = 0x1; - descriptorStruct.masterAccessSection.flMstr1.gbeRegionWriteAccess = 0x1; - descriptorStruct.masterAccessSection.flMstr1.pdRegionWriteAccess = 0x1; + descriptorStruct.masterAccessSection.flMstr1.fdRegionWriteAccess = 0x1; + descriptorStruct.masterAccessSection.flMstr1.biosRegionWriteAccess = 0x1; + descriptorStruct.masterAccessSection.flMstr1.meRegionWriteAccess = 0x1; + descriptorStruct.masterAccessSection.flMstr1.gbeRegionWriteAccess = 0x1; + descriptorStruct.masterAccessSection.flMstr1.pdRegionWriteAccess = 0x1; Also look in *resources/utilities/ich9deblob/src/ich9gen/mkdescriptor.c* for the following lines: - descriptorStruct.masterAccessSection.flMstr1.fdRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ - descriptorStruct.masterAccessSection.flMstr1.biosRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ - descriptorStruct.masterAccessSection.flMstr1.meRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ - descriptorStruct.masterAccessSection.flMstr1.gbeRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ - descriptorStruct.masterAccessSection.flMstr1.pdRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ + descriptorStruct.masterAccessSection.flMstr1.fdRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ + descriptorStruct.masterAccessSection.flMstr1.biosRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ + descriptorStruct.masterAccessSection.flMstr1.meRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ + descriptorStruct.masterAccessSection.flMstr1.gbeRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ + descriptorStruct.masterAccessSection.flMstr1.pdRegionWriteAccess = 0x1; /* see ../descriptor/descriptor.c */ NOTE: When you write-protect the flash chip, re-flashing is no longer possible unless you use dedicated external equipment, which also means @@ -206,13 +200,12 @@ Assuming that your libreboot image is named **libreboot.rom**, copy the **deblobbed\_descriptor.bin** file to where **libreboot.rom** is located and then run: - # dd if=deblobbed_descriptor.bin of=libreboot.rom bs=1 count=12k - -conv=notrunc + # dd if=deblobbed_descriptor.bin of=libreboot.rom bs=12k count=1 conv=notrunc Alternatively, if you got a the **deblobbed\_4kdescriptor.bin** file (no -GbE defined), do this: \$ **dd if=deblobbed\_4kdescriptor.bin -of=libreboot.rom bs=1 count=4k conv=notrunc** +GbE defined), do this: + + # dd if=deblobbed_4kdescriptor.bin of=libreboot.rom bs=4k count=1 conv=notrunc The utility will also generate 4 additional files: @@ -251,9 +244,7 @@ It will generate a 4KiB descriptor file (only the descriptor, no GbE). Insert that into a factory.rom image (NOTE: do this on a copy of it. Keep the original factory.rom stored safely somewhere): - # dd if=demefactory_4kdescriptor.bin of=factory_nome.rom bs=1 - -count=4k conv=notrunc + # dd if=demefactory_4kdescriptor.bin of=factory_nome.rom bs=4k count=1 conv=notrunc TODO: test this.\ TODO: lenovobios (GM45 thinkpads) still write-protects parts of the diff --git a/docs/hardware/index.md b/docs/hardware/index.md index 5f54675e..5fefdff3 100644 --- a/docs/hardware/index.md +++ b/docs/hardware/index.md @@ -229,6 +229,8 @@ this.* Tested LCD panels: (working) +- IDtech N141XC (14.1" 1024x768) +- TMD-Toshiba LTD141ECMB (14.1" 1024x768) - TMD-Toshiba LTD141EN9B (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board) - Samsung LTN141P4-L02 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the @@ -260,9 +262,7 @@ Tested LCD panels: *not working yet (incompatible; see *The following LCD panels are untested. If you have one of these panels then please submit a report!*: -- CMO(IDtech?) N141XC (14.1" 1024x768) - BOE-Hydis HT14X14 (14.1" 1024x768) -- TMD-Toshiba LTD141ECMB (14.1" 1024x768) - Boe-Hydis HT14P12 (14.1" 1400x1050) (FRU P/N 41W1478 recommended for the inverter board) - CMO (IDtech?) 13N7068 (15.1" 1024x768) @@ -466,7 +466,7 @@ right is the keypad enter. We can make it act as an AltGr. If your operating system is Trisquel or other dpkg-based distribution, there is an easy solution. Under root (or sudo) run - # dpkg-reconfigure keyboard-configuration + # dpkg-reconfigure keyboard-configuration and select the option "apple laptop", leave other settings as their defaults until you are given the option "Use Keypad Enter as @@ -477,7 +477,7 @@ everywhere. For Parabola or other systemd-based distributions you can enable AltGr manually. Simply add the line - KEYMAP_TOGGLE=lv3:enter_switch + KEYMAP_TOGGLE=lv3:enter_switch to the file /etc/vconsole.conf and then restart the computer. diff --git a/docs/hardware/kgpe-d16.md b/docs/hardware/kgpe-d16.md index e14c447d..45b1ae6c 100644 --- a/docs/hardware/kgpe-d16.md +++ b/docs/hardware/kgpe-d16.md @@ -10,6 +10,7 @@ work), merged into libreboot. *Memory initialization is still problematic, for some modules. We recommend avoiding Kingston modules.* +*For working configurations see <https://www.coreboot.org/Board:asus/kgpe-d16>.* Flashing instructions can be found at [../install/\#flashrom](../install/#flashrom) - note that external @@ -125,7 +126,7 @@ The information here is adapted, from the ASUS website. ### Memory compatibility (with libreboot) - *Total Slots:* 16 (4-channel per CPU, 8 DIMM per CPU), ECC -- *Capacity:* Maximum up to 256GB RDIMM +- *Capacity:* Maximum up to 256GB RDIMM (Tested max 128GB) - *Memory Type that is compatible:* - DDR3 1600/1333/1066/800 UDIMM\* - DDR3 1600/1333/1066/800 RDIMM\* diff --git a/docs/hardware/x200.md b/docs/hardware/x200.md index be4c2a38..c5f535cb 100644 --- a/docs/hardware/x200.md +++ b/docs/hardware/x200.md @@ -42,6 +42,15 @@ only replaces the BIOS firmware, not EC. Updated EC firmware has several advantages e.g. bettery battery handling. +Battery Recall {#batteryrecall} +========= +[On 21 April 2015, Lenovo expanded a recall on Lenovo batteries found in some ThinkPad models, which includes the X200 and X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) +To find out if you are affected, use [this Lenovo tool.](https://lenovobattery2014.orderz.com/) +Lenovo advises that owners of the recalled models "should turn off the system, remove the battery, +and only power your ThinkPad by plugging in the AC adapter and power cord." +Upon battery verification, Lenovo will replace recalled batteries free of charge. +Battery replacement instructions for the X200/X200s are found [on this page.](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) + Compatibility (without blobs) {#compatibility_noblobs} ----------------------------- diff --git a/docs/install/bbb_setup.md b/docs/install/bbb_setup.md index 18f0c7be..94cfdc0b 100644 --- a/docs/install/bbb_setup.md +++ b/docs/install/bbb_setup.md @@ -40,7 +40,7 @@ Shopping list (pictures of this hardware is shown later): (rev. C) is highly recommended. You can buy one from [Adafruit](https://www.adafruit.com) (USA), [ElectroKit](http://electrokit.com) (Sweden) or any of the - distributors listed [here](http://beagleboard.org/black) (look below + distributors listed on [BeagleBoard's website](http://beagleboard.org/black) (look below 'Purchase'). We recommend this product because we know that it works well for our purposes and doesn't require any non-free software. @@ -328,7 +328,10 @@ PSU to pin 2 on the BBB (P9 header). It is safe to install this now should.* if you need to extend the 3.3v psu leads, just use the same colour M-F -leads, *but* keep all other leads short (10cm or less) +leads, *but* keep all other leads short and equal length (30cm or less). +Keep in mind that length isn't inversely proportional to signal quality, +so trying out different lengths will yield different results. +Same goes for spispeed. You should now have something that looks like this:\ ![](images/x200/5252_bbb0.jpg) ![](images/x200/5252_bbb1.jpg) diff --git a/docs/install/images/rpi/0003.png b/docs/install/images/rpi/0003.png Binary files differindex fa090cf1..c7a3b9b2 100644 --- a/docs/install/images/rpi/0003.png +++ b/docs/install/images/rpi/0003.png diff --git a/docs/install/images/rpi/0009.png b/docs/install/images/rpi/0009.png Binary files differindex d3293069..130536b0 100644 --- a/docs/install/images/rpi/0009.png +++ b/docs/install/images/rpi/0009.png diff --git a/docs/install/images/rpi/0010.png b/docs/install/images/rpi/0010.png Binary files differindex e989afa4..312888e9 100644 --- a/docs/install/images/rpi/0010.png +++ b/docs/install/images/rpi/0010.png diff --git a/docs/install/images/rpi/0011.png b/docs/install/images/rpi/0011.png Binary files differindex fa090cf1..c7a3b9b2 100644 --- a/docs/install/images/rpi/0011.png +++ b/docs/install/images/rpi/0011.png diff --git a/docs/install/images/rpi/0012.png b/docs/install/images/rpi/0012.png Binary files differindex d3293069..130536b0 100644 --- a/docs/install/images/rpi/0012.png +++ b/docs/install/images/rpi/0012.png diff --git a/docs/install/images/rpi/0013.png b/docs/install/images/rpi/0013.png Binary files differindex e989afa4..312888e9 100644 --- a/docs/install/images/rpi/0013.png +++ b/docs/install/images/rpi/0013.png diff --git a/docs/install/images/x200/disassembly/0007.jpg b/docs/install/images/x200/disassembly/0007.jpg Binary files differdeleted file mode 100644 index 68bfb28a..00000000 --- a/docs/install/images/x200/disassembly/0007.jpg +++ /dev/null diff --git a/docs/install/images/x200/x200_soic16.jpg b/docs/install/images/x200/x200_soic16.jpg Binary files differnew file mode 100644 index 00000000..345a04d7 --- /dev/null +++ b/docs/install/images/x200/x200_soic16.jpg diff --git a/docs/install/images/x200/x200_soic8.jpg b/docs/install/images/x200/x200_soic8.jpg Binary files differnew file mode 100644 index 00000000..59adfabd --- /dev/null +++ b/docs/install/images/x200/x200_soic8.jpg diff --git a/docs/install/index.md b/docs/install/index.md index 70dd554e..f2a70112 100644 --- a/docs/install/index.md +++ b/docs/install/index.md @@ -264,13 +264,13 @@ executables from the libreboot source code archives. How to update the flash chip contents: - $ sudo ./flash update [yourrom.rom](#rom) +`$ sudo ./flash update `[`yourrom.rom`](#rom) Ocassionally, coreboot changes the name of a given board. If flashrom complains about a board mismatch, but you are sure that you chose the correct ROM image, then run this alternative command: - $ sudo ./flash forceupdate [yourrom.rom](#rom) + `$ sudo ./flash forceupdate `[`yourrom.rom`](#rom) You should see `Verifying flash... VERIFIED.` written at the end of the flashrom output. *Shut down* after you see this, and then boot @@ -303,7 +303,7 @@ the flashing script. do this: * The first half of the procedure is as follows: - $ sudo ./flash i945lenovo\_firstflash [yourrom.rom](#rom). +`$ sudo ./flash i945lenovo_firstflash `[`yourrom.rom`](#rom) You should see within the output the following: @@ -330,13 +330,11 @@ needed (see below). When you have booted up again, you must also do this: - $ sudo ./flash i945lenovo\_secondflash [yourrom.rom](#rom) +`$ sudo ./flash i945lenovo_secondflash `[`yourrom.rom`](#rom) If flashing fails at this stage, try the following: - # sudo ./flashrom/i686/flashrom -p - -internal:laptop=force\_I\_want\_a\_brick -w [yourrom.rom](#rom) +`$ sudo ./flashrom/i686/flashrom -p internal:laptop=force_I_want_a_brick -w `[`yourrom.rom`](#rom) You should see within the output the following: @@ -372,7 +370,7 @@ with your device. Use this flashing script, to install libreboot: - $ sudo ./flash i945apple\_firstflash [yourrom.rom](#rom) +`$ sudo ./flash i945apple_firstflash `[`yourrom.rom`](#rom) You should also see within the output the following: diff --git a/docs/install/t400_external.md b/docs/install/t400_external.md index b4b1ece3..8f34f4c5 100644 --- a/docs/install/t400_external.md +++ b/docs/install/t400_external.md @@ -12,7 +12,7 @@ An ["HMM"](https://download.lenovo.com/ibmdl/pub/pc/pccbbs/mobiles_pdf/43y6629_05.pdf#page=386) (Hardware Maintenance Manual) detailing the process of \[dis\]assembly is available for this model. Be careful when reassembling the laptop as -the screws on page 144 (with title "1130 Keyboard bezel") are swapped +the screws on page 114 (with title "1130 Keyboard bezel") are swapped and if you follow the HMM you will punch a hole through the bezel in the upper right corner. diff --git a/docs/install/x200_external.md b/docs/install/x200_external.md index 6414fe7c..3ff34501 100644 --- a/docs/install/x200_external.md +++ b/docs/install/x200_external.md @@ -17,13 +17,13 @@ GNU+Linux distribution. Flash chip size =============== -Use this to find out: +Run this command on x200 to find out flash chip model and its size: # flashrom -p internal -V The X200S and X200 Tablet will use a WSON-8 flash chip, on the bottom of the motherboard (this requires removal of the motherboard). Not all X200S/X200T are -supported; see [here](../hardware/x200.html#x200s). +supported; see the [hardware](../hardware/x200.html#x200s) page. MAC address =========== @@ -108,9 +108,12 @@ lifting up the left and right side of it:\ ![](images/x200/disassembly/0006.1.jpg) ![](images/x200/disassembly/0006.jpg) +This shows the location of the flash chip, for both SOIC-8 and SOIC-16:\ +![](images/x200/x200_soic16.jpg) +![](images/x200/x200_soic8.jpg) + Lift back the tape that covers a part of the flash chip, and then connect the clip:\ -![](images/x200/disassembly/0007.jpg) ![](images/x200/disassembly/0008.jpg) On pin 2 of the BBB, where you have the ground (GND), connect the ground diff --git a/docs/misc/bbb_ehci.md b/docs/misc/bbb_ehci.md index 6f072154..50801a33 100644 --- a/docs/misc/bbb_ehci.md +++ b/docs/misc/bbb_ehci.md @@ -143,7 +143,7 @@ arm-linux-gnueabihf setup on your *host*. $ cp configs/beaglebone kernel/arch/arm/configs/beaglebone_defconfig - Download the patch from - [here](http://www.coreboot.org/images/8/88/Ehci-debug-gadget-patches.tar.gz) + [coreboot.org](http://www.coreboot.org/images/8/88/Ehci-debug-gadget-patches.tar.gz) - tar -xf Ehci-debug-gadget-patches.tar.gz (will create dir: usbdebug-gadget) - Note that there are two patches (patch\_1 and patch\_2) for each of @@ -228,7 +228,7 @@ one^[2](#___fn2)^ should be = y ^2^ The g\_dbgp module on BeagleBone Black (Rev. C) reports it self as Net20DC, the other options are for older BB(B) - ver1. This is documented -[here](https://johnlewis.ie/coreboot-ehci-debug-gadget-demonstration/) +[on John Lewis's blog](https://johnlewis.ie/coreboot-ehci-debug-gadget-demonstration/) (also tested/verified). Then:\ diff --git a/docs/misc/index.md b/docs/misc/index.md index 912a5b81..02e715d8 100644 --- a/docs/misc/index.md +++ b/docs/misc/index.md @@ -73,6 +73,8 @@ is to add *processor.max\_cstate=2* to the *linux* line in grub.cfg, using [this guide](../gnulinux/grub_cbfs.md). X60/T60: Serial port - how to use (for dock owners) + +[Note: using a grsec enabled kernel will disable the powertop function. ](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options) =================================================== For the Thinkpad X60 you can use the "UltraBase X6" dock (for the @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # download script: Download the programs used in libreboot, that # aren't distributed in the git repository. @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # flash script: uses flashrom to flash a libreboot ROM image # @@ -1,6 +1,7 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> # # 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 @@ -16,58 +17,58 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. GLOBIGNORE=".:.." # This enables the shell option 'dotglob' as well. -shopt -s nullglob +shopt -s nullglob extglob libreboot_usage() { local action local target - printf "${executable} [action] [target] [arguments]\n" >&2 + printf '%s\n' "$executable [action] [target] [arguments]" >&2 - printf "\nGeneric project actions:\n" >&2 + printf '\n%s\n' 'Generic project actions:' >&2 - for action in ${PROJECT_ACTIONS_GENERIC}; do - printf " ${action}\n" >&2 + for action in "${PROJECT_ACTIONS_GENERIC[@]}"; do + printf '%s\n' " $action" >&2 done - printf "\nVirtual project actions:\n" >&2 + printf '\n%s\n' 'Virtual project actions:' >&2 + printf '%s\n' ' sources' + printf '%s\n' ' produce' + printf '%s\n' ' test' - printf " sources\n" - printf " produce\n" - printf " test\n" + printf '\n%s\n' 'Project targets:' >&2 - printf "\nProject targets:\n" >&2 - - for target in "${root}/${PROJECTS}"/*; do - if project_check "${target}"; then - printf " ${target}\n" >&2 + for target in "$root/$PROJECTS"/*; do + if project_check "$target"; then + printf '%s\n' " $target" >&2 fi done - printf "\nGeneric tool actions:\n" >&2 + printf '\n%s\n' 'Generic tool actions:' >&2 - for action in ${TOOL_ACTIONS_GENERIC}; do - printf " ${action}\n" >&2 + for action in "${TOOL_ACTIONS_GENERIC[@]}"; do + printf '%s\n' " $action" >&2 done - printf "\nTool targets:\n" >&2 + printf '\n%s\n' 'Tool targets:' >&2 - for target in "${root}/${TOOLS}"/*; do - if tool_check "${target}"; then - printf " ${target}\n" >&2 + for target in "$root/$TOOLS"/*; do + if tool_check "$target"; then + printf '%s\n' " $target" >&2 fi done - printf "\nEnvironment variables:\n" >&2 - printf " PROJECTS_FORCE - Projects to always perform actions for\n" >&2 - printf " TOOLS_FORCE - Tools to always perform actions for\n" >&2 - printf " RELEASE_KEY - GPG key to use for release\n" >&2 - printf " VBOOT_KEYS_PATH - Path to the vboot keys\n" >&2 - printf " TASKS - Number of simultaneous tasks to run\n" >&2 - printf " VERSION - Version string to use\n" >&2 - - printf "\nConfiguration files:\n" >&2 - printf " ${BUILD_SYSTEM}.conf - Environment variables configuration\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' PROJECTS_FORCE - Projects to always perform actions for' >&2 + printf '%s\n' ' TOOLS_FORCE - Tools to always perform actions for' >&2 + printf '%s\n' ' RELEASE_KEY - GPG key to use for release' >&2 + printf '%s\n' ' VBOOT_KEYS_PATH - Path to the vboot keys' >&2 + printf '%s\n' ' LIBFAKETIME_PATH - Path to the libfaketime shared library' >&2 + printf '%s\n' ' TASKS - Number of simultaneous tasks to run' >&2 + printf '%s\n' ' VERSION - Version string to use' >&2 + + printf '\n%s\n' 'Configuration files:' >&2 + printf '%s\n' " $BUILD_SYSTEM.conf - Environment variables configuration" >&2 } libreboot_project() { @@ -76,35 +77,33 @@ libreboot_project() { project="$1" shift - case ${action} in - "sources") - ( - set +e - - project_action_arguments "extract" "${project}" "$@" && return 0 - project_action_arguments "download" "${project}" "$@" && return 0 - ) + case "$action" in + 'sources') + if project_action_arguments 'extract' "$project" "$@"; then + return + else + printf '\n%s\n\n' 'Attempting to download instead...' + project_action_arguments 'download' "$project" "$@" + fi ;; - "produce") - for action in "build" "install" "release"; do - project_action_arguments "${action}" "${project}" "$@" + 'produce') + for action in 'build' 'install' 'release'; do + project_action_arguments "$action" "$project" "$@" done ;; - "test") - for action in ${PROJECT_ACTIONS}; do - project_action_arguments "${action}" "${project}" "$@" + 'test') + for action in "${PROJECT_ACTIONS[@]}"; do + project_action_arguments "$action" "$project" "$@" done ;; *) - if ! project_function_check "${project}" "${action}"; then + if ! project_function_check "$project" "$action"; then libreboot_usage exit 1 - fi - - if [[ "${action}" == "usage" ]]; then - project_action "${action}" "${project}" "$@" + elif [[ "$action" == 'usage' ]]; then + project_action "$action" "$project" "$@" else - project_action_arguments "${action}" "${project}" "$@" + project_action_arguments "$action" "$project" "$@" fi ;; esac @@ -116,93 +115,132 @@ libreboot_tool() { tool="$1" shift - case ${action} in - *) - if ! tool_function_check "${tool}" "${action}"; then - libreboot_usage - exit 1 - fi - - if [[ "${action}" == "usage" ]]; then - tool_action "${action}" "${tool}" "$@" - else - tool_action_arguments_recursive "${action}" "${tool}" "$@" - fi - ;; - esac + if ! tool_function_check "$tool" "$action"; then + libreboot_usage + exit 1 + elif [[ "$action" == 'usage' ]]; then + tool_action "$action" "$tool" "$@" + else + tool_action_arguments_recursive "$action" "$tool" "$@" + fi } libreboot_setup() { root="$(readlink -f "$(dirname "$0")")" executable="$(basename "$0")" - local requirements="git" - local requirement_path - libreboot_setup_include - libreboot_setup_variables + libreboot_setup_tool_actions + libreboot_setup_project_actions - for requirement in ${requirements}; do - requirement_path="$(which "${requirement}" || true)" + requirements 'tar' 'sed' 'gpg' 'sha256sum' 'git' - if [[ -z "${requirement_path}" ]]; then - printf "Missing requirement: ${requirement}\n" >&2 - exit 1 - fi - done + libreboot_setup_variables } libreboot_setup_include() { - local libs_path="${root}/libs" + local libs_path="$root/libs" local conf_path - source "${libs_path}/project" - source "${libs_path}/tool" - source "${libs_path}/common" - source "${libs_path}/git" + source "$libs_path/project" + source "$libs_path/tool" + source "$libs_path/common" + source "$libs_path/git" - conf_path="${root}/${BUILD_SYSTEM}.conf" + conf_path="$root/$BUILD_SYSTEM.conf" - if [[ -f "${conf_path}" ]]; then - source "${conf_path}" + if [[ -f "$conf_path" ]]; then + source "$conf_path" fi } +libreboot_setup_tool_actions() { + local -i tool_actions_count="${#TOOL_ACTIONS_GENERIC[@]}" + local ignore="${TOOL_ACTIONS_GENERIC_IGNORE_CHECK[*]}" + + local -a tool_actions + + for ((i=0; i<"$tool_actions_count"; i++)); do + tool_actions+=("${TOOL_ACTIONS_GENERIC[i]}") + + if [[ "${TOOL_ACTIONS_GENERIC[i]}" == !(${ignore// /|}) ]]; then + tool_actions+=("${TOOL_ACTIONS_GENERIC[i]/%/_check}") + fi + done + + TOOL_ACTIONS=("${TOOL_ACTIONS_HELPERS[@]}" "${tool_actions[@]}") +} + +libreboot_setup_project_actions() { + local -i project_actions_count="${#PROJECT_ACTIONS_GENERIC[@]}" + local ignore="${PROJECT_ACTIONS_GENERIC_IGNORE_CHECK[*]}" + + local -a project_actions + + for ((i=0; i<"$project_actions_count"; i++)); do + project_actions+=("${PROJECT_ACTIONS_GENERIC[i]}") + + if [[ "${PROJECT_ACTIONS_GENERIC[i]}" == !(${ignore// /|}) ]]; then + project_actions+=("${PROJECT_ACTIONS_GENERIC[i]/%/_check}") + fi + done + + PROJECT_ACTIONS=("${PROJECT_ACTIONS_HELPERS[@]}" "${project_actions[@]}") +} + libreboot_setup_variables() { local vboot_tools_path="$(project_install_path 'vboot' 'tools')" - local version_path="${root}/${DOTVERSION}" - local epoch_path="${root}/${DOTEPOCH}" + local version_path="$root/$DOTVERSION" - if [[ -z "${TASKS}" ]]; then - TASKS=1 + if [[ -z "$VERSION" ]]; then + if git_check "$root"; then + VERSION="$BUILD_SYSTEM-$(git_describe "$root" 2> /dev/null || echo 'git')" + elif [[ -f "$version_path" ]]; then + VERSION="$(< "$version_path")" + else + VERSION="$BUILD_SYSTEM" + fi + fi + + if [[ -d "$vboot_tools_path/devkeys/" ]]; then + VBOOT_KEYS_PATH="${VBOOT_KEYS_PATH:-$vboot_tools_path/devkeys/}" fi - if [[ -z "${VERSION}" ]]; then - if git_check "${root}"; then - VERSION="${BUILD_SYSTEM}-$(git_describe "${root}" 2> /dev/null || echo 'git')" - elif [[ -f "${version_path}" ]]; then - VERSION="$(cat "${version_path}")" + libreboot_setup_reproducible_builds_variables +} + +libreboot_setup_reproducible_builds_variables() { + local epoch_path="$root/$DOTEPOCH" + local rnd_seed_path="$root/$DOTRNDSEED" + + # Used by GCC, e.g., -frandom-seed="$RANDOM_SEED" + if [[ -z "$RANDOM_SEED" ]]; then + if [[ -f "$rnd_seed_path" ]]; then + RANDOM_SEED="$(< "$rnd_seed_path")" else - VERSION="${BUILD_SYSTEM}" + RANDOM_SEED="$RANDOM" # True randomness is unnecessary fi fi - if [[ -z "${SOURCE_DATE_EPOCH}" ]]; then - if git_check "${root}"; then + # Also used by GCC, but as an environment variable + if [[ -z "$SOURCE_DATE_EPOCH" ]]; then + if git_check "$root"; then SOURCE_DATE_EPOCH="$(git log -1 --format=%ct)" - elif [[ -f "${epoch_path}" ]]; then - SOURCE_DATE_EPOCH="$(cat "${epoch_path}")" + elif [[ -f "$epoch_path" ]]; then + SOURCE_DATE_EPOCH="$(< "$epoch_path")" else SOURCE_DATE_EPOCH="$(date +%s)" fi fi - if [[ -z "${VBOOT_KEYS_PATH}" ]] && [[ -d "${vboot_tools_path}/devkeys/" ]]; then - VBOOT_KEYS_PATH="${vboot_tools_path}/devkeys/" - fi - - if [[ -z "${EDITOR}" ]]; then - EDITOR="vi" + # Relevant only when libfaketime is preloaded + if [[ -n "$LIBFAKETIME_PATH" ]]; then + BUILD_DATE_FMT="%Y-%m-%d %H:%M:%S" + BUILD_DATE="$(date -u -d "@$SOURCE_DATE_EPOCH" "+$BUILD_DATE_FMT" 2>/dev/null || date -u -r "$SOURCE_DATE_EPOCH" "+$BUILD_DATE_FMT" 2>/dev/null || date -u "+$BUILD_DATE_FMT")" + FAKETIME="@$BUILD_DATE" + LC_ALL='C.UTF-8' + LD_PRELOAD="$LIBFAKETIME_PATH" + TZ='UTC' fi } @@ -216,17 +254,10 @@ libreboot() { libreboot_setup "$@" - if [[ -z "${action}" ]] || [[ -z "${target}" ]]; then - libreboot_usage - exit 1 - fi - - requirements "tar" "sed" "gpg" "sha256sum" - - if project_check "${target}"; then - libreboot_project "${action}" "${target}" "$@" - elif tool_check "${target}"; then - libreboot_tool "${action}" "${target}" "$@" + if project_check "$target"; then + libreboot_project "$action" "$target" "$@" + elif tool_check "$target"; then + libreboot_tool "$action" "$target" "$@" else libreboot_usage exit 1 diff --git a/libs/common b/libs/common index 8f1379ee..fd001a5d 100755 --- a/libs/common +++ b/libs/common @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -35,12 +35,17 @@ BLOBS_IGNORE="blobs-ignore" BLOBS_DISCOVER="blobs-discover" DOTEPOCH=".epoch" +DOTRNDSEED=".rndseed" DOTVERSION=".version" DOTREVISION=".revision" DOTTARFILES=".tarfiles" -TAR_XZ="tar.xz" -SHA256SUM="sha256sum" -ASC="asc" +ARCHIVE="tar.xz" +CHECKSUM="sha256sum" +DSIG="asc" + +CONFIG_SHELL="${CONFIG_SHELL:-$(which bash)}" +EDITOR="${EDITOR:-$(which vi || true)}" +TASKS="${TASKS:-1}" function_check() { local function=$1 @@ -59,32 +64,73 @@ arguments_list() { for argument in "$@" do - echo "$argument" + printf '%s\n' "$argument" done } +download_wrapper() { + local download_dir="$1" + shift + local uris=($@) + + local wget_options=( + '--config=/dev/null' + '--secure-protocol=PFS' + "--directory-prefix=$download_dir" + '--continue' + '--' + ) + + local curl_options=( + '-q' + '--continue-at -' + '--remote-name' + '--retry 20' + '--ssl' + '--tlsv1.2' + '--' + ) + + if hash wget > /dev/null 2>&1; then + + wget "${wget_options[@]}" "${uris[@]}" + + elif hash curl > /dev/null 2>&1; then + ( + cd "$download_dir" + + curl "${curl_options[@]}" "${uris[@]}" + ) + else + printf '\n%s\n\n' 'Error: Neither wget nor curl were found' 1>&2 + + return 1 + fi +} + diff_patch_file() { local repository_path="$1" local patch_file_path="$2" - local filename_in_diff="$(sed -rne 's/^-{3} {1}(.*)$/\1/p' <"${patch_file_path}")" + # TODO: Improve handling of filenames to avoid gotchas w/ \n, \t, etc. + local filename_in_diff="$(sed -rne 's/^-{3}\s+([^ \r\n]*).*/\1/p' "$patch_file_path")" local source_file_path - if ! ( grep -E '^-{3}.*/' <"${patch_file_path}" >/dev/null 2>&1 ); then - source_file_path="${repository_path}/${filename_in_diff##\ }" + if ! ( grep -E '^-{3}.*/' "$patch_file_path" >/dev/null 2>&1 ); then + source_file_path="$repository_path/$filename_in_diff" else - source_file_path="${repository_path}/${filename_in_diff##*/}" + source_file_path="$repository_path/${filename_in_diff##*/}" fi - patch "${source_file_path}" "${patch_file_path}" + patch "$source_file_path" "$patch_file_path" } path_wildcard_expand() { local path=$@ # Evaluation fails with unescaped whitespaces. - path=$( echo "$path" | sed "s/ /\\\ /g" ) + path=$( printf '%s\n' "$path" | sed "s/ /\\\ /g" ) eval "arguments_list "$path"" } @@ -92,7 +138,7 @@ path_wildcard_expand() { file_checksum_create() { local path=$1 - local checksum_path="$path.$SHA256SUM" + local checksum_path="$path.$CHECKSUM" local name=$( basename "$path" ) local directory_path=$( dirname "$path" ) @@ -105,13 +151,13 @@ file_checksum_create() { file_checksum_check() { local path=$1 - local checksum_path="$path.$SHA256SUM" + local checksum_path="$path.$CHECKSUM" local name=$( basename "$path" ) local directory_path=$( dirname "$path" ) if ! [ -f "$checksum_path" ] then - printf "Could not verify file checksum!\n" >&2 + printf '%s\n' 'Could not verify file checksum!' >&2 return 1 fi @@ -124,7 +170,7 @@ file_checksum_check() { file_signature_create() { local path=$1 - local signature_path="$path.$ASC" + local signature_path="$path.$DSIG" if [ -z "$RELEASE_KEY" ] then @@ -137,11 +183,11 @@ file_signature_create() { file_signature_check() { local path=$1 - local signature_path="$path.$ASC" + local signature_path="$path.$DSIG" if ! [ -f "$signature_path" ] then - printf "Could not verify file signature!\n" >&2 + printf '%s\n' 'Could not verify file signature!' >&2 return 1 fi @@ -180,145 +226,151 @@ directory_filled_check() { } archive_files_create() { - local source_path=$1 + local source_path="$1" - local directory=$( basename "$source_path" ) + local directory="$(basename "$source_path")" local tarfiles_path="$source_path/$DOTTARFILES" local revision_path="$source_path/$DOTREVISION" local version_path="$source_path/$DOTVERSION" + local epoch_path="$source_path/$DOTEPOCH" + local rnd_seed_path="$source_path/$DOTRNDSEED" - if git_check "$source_path" - then - git_files "$source_path" | tr -d '\0' > "$tarfiles_path" - echo "$DOTTARFILES" | tr -d '\0' >> "$tarfiles_path" + # Files in "$tarfiles_path" are NUL terminated. + # `tr '\0' '\n'` for human-readable output. + if git_check "$source_path"; then + git_files "$source_path" > "$tarfiles_path" + printf '%s\0' "$DOTTARFILES" >> "$tarfiles_path" else - touch "$tarfiles_path" - - ( - cd "$source_path" - find - ) | LC_ALL=C sort | sed "s,^./,," | grep -vP "^\.$" > "$tarfiles_path" - fi - - if [ -f "$revision_path" ] - then - echo "$DOTREVISION" | tr -d '\0' >> "$tarfiles_path" + find "$source_path" -print0 | env LC_ALL='C.UTF-8' sort -z | sed -z "1d;s,^$source_path/\\?,,;/^$DOTTARFILES\$/d" > "$tarfiles_path" fi - if [ -f "$version_path" ] - then - echo "$DOTVERSION" | tr -d '\0' >> "$tarfiles_path" - fi - - if [ -f "$epoch_path" ] - then - echo "$DOTEPOCH" | tr -d '\0' >> "$tarfiles_path" - fi + for dotfile in "$revision_path" \ + "$version_path" \ + "$epoch_path" \ + "$rnd_seed_path" + do + if [[ -f "$dotfile" ]]; then + printf '%s\0' ".${dotfile##*.}" >> "$tarfiles_path" + fi + done } archive_files_date() { - local source_path=$1 + local source_path="$1" local epoch_path="$source_path/$DOTEPOCH" - if ! [ -z "$SOURCE_DATE_EPOCH" ] - then - ( - cd "$source_path" - find -exec touch --no-dereference --date="@$SOURCE_DATE_EPOCH" {} \; - ) + if [[ -n "$SOURCE_DATE_EPOCH" ]]; then + find "$source_path" -execdir touch --no-dereference --date="@$SOURCE_DATE_EPOCH" {} + fi } archive_create() { - local archive_path=$1 - local source_path=$2 - local directory=$3 + local archive_path="$1" + local source_path="$2" + local directory="$3" local tarfiles_path="$source_path/$DOTTARFILES" - local directory_path=$( dirname "$archive_path" ) + local directory_path="$(dirname "$archive_path")" mkdir -p "$directory_path" - if [ -z "$directory" ] - then - directory=$( basename "$source_path" ) + if [[ -z "$directory" ]]; then + directory="$(basename "$source_path")" fi archive_files_create "$source_path" archive_files_date "$source_path" + local tar_options=( + --create + --xz + --file="$archive_path" + --files-from="$tarfiles_path" + --transform="s,^,$directory/,S" + --no-recursion + --warning=no-filename-with-nuls + --null + --owner=0 + --group=0 + --numeric-owner + ) + ( cd "$source_path" - tar -cJf "$archive_path" --no-recursion -T "$tarfiles_path" --transform="s,^,$directory/,S" --owner=root --group=root --numeric-owner + tar "${tar_options[@]}" ) } archive_extract() { - local archive_path=$1 - local destination_path=$2 + local archive_path="$1" + local destination_path="$2" - if [ -z "$destination_path" ] - then - destination_path=$( dirname "$archive_path" ) + if [[ -z "$destination_path" ]]; then + destination_path="$(dirname "$archive_path")" fi tar -xf "$archive_path" -ps -C "$destination_path" } rootfs_files_create() { - local source_path=$1 + local source_path="$1" - local directory=$( basename "$source_path" ) + local directory="$(basename "$source_path")" local tarfiles_path="$source_path/$DOTTARFILES" - touch "$tarfiles_path" - - ( - cd "$source_path" - execute_root find - ) | LC_ALL=C sort | sed "s,^./,," | grep -vP "^$DOTTARFILES|^\.$" > "$tarfiles_path" + # Files in "$tarfiles_path" are NUL terminated. + # `tr '\0' '\n'` for human-readable output. + execute_root find "$source_path" -print0 | env LC_ALL='C.UTF-8' sort -z | sed -z "1d;s,^$source_path/\\?,,;/^$DOTTARFILES\$/d" > "$tarfiles_path" } rootfs_files_date() { - local source_path=$1 + local source_path="$1" local epoch_path="$source_path/$DOTEPOCH" - if ! [ -z "$SOURCE_DATE_EPOCH" ] - then - ( - cd "$source_path" - execute_root find -exec touch --no-dereference --date="@$SOURCE_DATE_EPOCH" {} \; - ) + if [[ -n "$SOURCE_DATE_EPOCH" ]]; then + execute_root find "$source_path" -execdir touch --no-dereference --date="@$SOURCE_DATE_EPOCH" {} + fi } rootfs_create() { - local rootfs_path=$1 - local source_path=$2 - local directory=$3 + local rootfs_path="$1" + local source_path="$2" + local directory="$3" local tarfiles_path="$source_path/$DOTTARFILES" - local directory_path=$( dirname "$rootfs_path" ) + local directory_path="$(dirname "$rootfs_path")" mkdir -p "$directory_path" - if [ -z "$directory" ] - then - directory=$( basename "$source_path" ) + if [[ -z "$directory" ]]; then + directory="$(basename "$source_path")" fi rootfs_files_create "$source_path" rootfs_files_date "$source_path" + local tar_options=( + --create + --xz + --file="$rootfs_path" + --files-from="$tarfiles_path" + --no-recursion + --warning=no-filename-with-nuls + --null + --owner=0 + --group=0 + --numeric-owner + ) + ( cd "$source_path" - execute_root tar -cJf "$rootfs_path" --no-recursion -T "$tarfiles_path" --numeric-owner + execute_root tar "${tar_options[@]}" ) execute_root chmod 644 "$rootfs_path" - execute_root chown $USER:$USER "$rootfs_path" + execute_root chown "$USER:$USER" "$rootfs_path" } requirements() { @@ -331,7 +383,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done @@ -348,7 +400,7 @@ requirements_root() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done @@ -370,22 +422,22 @@ arguments_concat() { fi done - echo "$concat" + printf '%s\n' "$concat" } execute_root() { local sudo=$( which sudo 2> /dev/null || true ) local arguments - printf "Running command as root: " >&2 - echo "$@" >&2 + printf '%s' 'Running command as root: ' >&2 + printf '%b\n' "$*" >&2 if ! [ -z "$sudo" ] then sudo "$@" else # Quote arguments for eval through su. - arguments=$( printf "%q " "$@" ) + arguments=$( printf '%q ' "$@" ) su -c "$arguments" fi } @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -202,19 +202,19 @@ git_describe() { } git_files() { - local repository_path=$1 + local repository_path="$1" ( cd "$repository_path" # Reproducible sorting. - git ls-files | LC_ALL=C sort -z + git ls-files -z | env LC_ALL='C.UTF-8' sort -z ) } git_project_repository_path() { local repository=$1 - echo "$root/$SOURCES/$repository" + printf '%s\n' "$root/$SOURCES/$repository" } git_project_check() { @@ -231,23 +231,23 @@ git_project_patch_recursive() { local branch="$3" local path="${4:-.}" - local repository_path="$(git_project_repository_path "${repository}")" - local project_path="$(project_path "${project}")" - local patches_path="${project_path}/${PATCHES}/${path}" + local repository_path="$(git_project_repository_path "$repository")" + local project_path="$(project_path "$project")" + local patches_path="$project_path/$PATCHES/$path" - if ! [[ -d "${patches_path}" ]]; then + if ! [[ -d "$patches_path" ]]; then return fi - if [[ "${path}" != "." ]]; then - git_project_patch_recursive "${project}" "${repository}" "${branch}" "$(dirname "${path}")" + if [[ "$path" != "." ]]; then + git_project_patch_recursive "$project" "$repository" "$branch" "$(dirname "$path")" fi - for patch in "${patches_path}"/[!.]*.{patch,diff}; do + for patch in "$patches_path"/[!.]*.@(patch|diff); do if [[ "${patch##*.}" == "patch" ]]; then - git_patch "${repository_path}" "${branch}" "${patch}" + git_patch "$repository_path" "$branch" "$patch" else - diff_patch_file "${repository_path}" "${patch}" + diff_patch_file "$repository_path" "$patch" fi done } @@ -579,10 +579,10 @@ git_project_release() { if ! [ -z "$release_branch" ] then - local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$TAR_XZ" + local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$ARCHIVE" local sources_path="$root/$SOURCES/$repository" - printf "Releasing sources archive for $project (with ${arguments:-no argument}) from "$repository" git\n" + printf '%s\n' "Releasing sources archive for $project (with ${arguments:-no argument}) from "$repository" git" git_branch_checkout "$repository_path" "$release_branch" git_submodule_update "$repository_path" @@ -620,7 +620,7 @@ git_project_release_check() { if ! [ -z "$release_branch" ] then - local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$TAR_XZ" + local archive_path="$root/$RELEASE/$SOURCES/$project/$release_branch.$ARCHIVE" file_exists_check "$archive_path" diff --git a/libs/project b/libs/project index 20a6fe77..37a5973c 100755 --- a/libs/project +++ b/libs/project @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -15,20 +15,20 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -PROJECT_ACTIONS_GENERIC="usage download extract update build install release clean" -PROJECT_ACTIONS_HELPERS="arguments" -PROJECT_FUNCTIONS=$( for action in $PROJECT_ACTIONS_GENERIC ; do echo "$action" "$action""_check" ; done ; echo "$PROJECT_ACTIONS_HELPERS" ) +PROJECT_ACTIONS_GENERIC=(usage download extract update build install release clean) +PROJECT_ACTIONS_GENERIC_IGNORE_CHECK=(usage clean) +PROJECT_ACTIONS_HELPERS=(arguments) -INSTALL_REGEX="\([^:]*\):\(.*\)" +INSTALL_REGEX='\([^:]*\):\(.*\)' project_include() { local project=$1 local project_path=$( project_path "$project" ) - unset -f $PROJECT_FUNCTIONS + unset -f "${PROJECT_ACTIONS[@]}" - . "$project_path/$project" + source "$project_path/$project" project_helper_include "$project" } @@ -41,16 +41,16 @@ project_helper_include() { if [ -f "$include" ] then - . "$include" + source "$include" fi } project_check() { local project="${1##*/}" - local project_path="$(project_path "${project}")" + local project_path="$(project_path "$project")" - if ! [[ -f "${project_path}/${project}" ]]; then + if ! [[ -f "$project_path/$project" ]]; then return 1 fi } @@ -70,162 +70,108 @@ project_function_check() { } project_action() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift - local arguments=$@ + local arguments="$*" ( set +e - if ! project_check "$project" - then - printf "Project $project check failed\n" >&2 - return 1 - fi - project_action_check "$action" "$project" "$@" - # Why is this here? Commented out for now. - # if [ $? -eq 0 ] - # then - # return 0 - # fi - - project_include "$project" - - if ! function_check "$action" - then - return 0 - fi - - printf "Project $project $action (with ${arguments:-no argument})\n" >&2 - - ( - set -e - "$action" "$@" - ) + printf '%s\n' "Project $project $action (with ${arguments:-no argument})" >&2 - if [ $? -ne 0 ] - then - printf "\nProject $project $action (with ${arguments:-no argument}) failed\n" >&2 - return 1 + if "$action" "$@"; then + printf '\n%s\n' "Project $project $action (with ${arguments:-no argument}) completed" >&2 else - printf "\nProject $project $action (with ${arguments:-no argument}) completed\n" >&2 + printf '\n%s\n' "Project $project $action (with ${arguments:-no argument}) failed" >&2 + return 1 fi ) } project_action_check() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift ( set +e - if ! project_check "$project" - then - printf "Project $project check failed\n" >&2 + if ! function_check "${action}_check"; then return 1 fi - project_include "$project" - - if ! function_check "$action""_check" - then - return 1 - fi - - for project_force in $PROJECTS_FORCE - do - if [ "$project_force" = "$project" ] - then + for project_force in $PROJECTS_FORCE; do + if [[ "$project_force" == "$project" ]]; then return 1 fi done ( set -e - "$action""_check" "$@" + "${action}_check" "$@" ) ) } project_action_helper() { - local helper=$1 + local helper="$1" shift - local project=$1 + local project="$1" shift - ( - set +e - - if ! project_check "$project" - then - printf "Project $project check failed\n" >&2 - return 1 - fi - - project_include "$project" - - if ! function_check "$helper" - then - return 0 - fi + if ! function_check "$helper"; then + return 0 + fi - ( - set -e - "$helper" "$@" - ) - ) + "$helper" "$@" } project_action_arguments() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift + project_include "$project" + project_action_arguments_verify_recursive "$action" "$project" "$@" project_action_arguments_recursive "$action" "$project" "$@" } project_action_arguments_verify_recursive() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift local action_helper_arguments # Store final argument. - local argument=${@:$#} + local argument="${*:$#}" local test - if [ $# -gt 1 ] - then + if [[ "$#" -gt 1 ]]; then # Set previous arguments. set "${@:1:$#-1}" - elif [ $# -eq 1 ] - then + elif [[ "$#" -eq 1 ]]; then shift else return 0 fi - action_helper_arguments=$( project_action_helper "arguments" "$project" "$@" ) + action_helper_arguments="$(project_action_helper 'arguments' "$project" "$@")" - if ! [ -z "$action_helper_arguments" ] - then - test=$( echo "$action_helper_arguments" | grep -P "^$argument$" || true ) + if [[ -n "$action_helper_arguments" ]]; then + test="$(printf '%s\n' "$action_helper_arguments" | grep -e "^$argument\$" || true)" - if [ -z "$test" ] - then - printf "Invalid argument $argument for project $project action $action\n" >&2 + if [[ -z "$test" ]]; then + printf '%s\n' "Invalid argument $argument for project $project action $action" >&2 return 1 fi fi @@ -234,62 +180,54 @@ project_action_arguments_verify_recursive() { } project_action_arguments_recursive() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift local action_helper_arguments local argument - local ifs_save - action_helper_arguments=$( project_action_helper "arguments" "$project" "$@" ) + action_helper_arguments="$(project_action_helper 'arguments' "$project" "$@" || true)" - if [ $? -ne 0 ] || [ -z "$action_helper_arguments" ] - then + if [[ -z "$action_helper_arguments" ]]; then project_action "$action" "$project" "$@" else - # This it to allow space characters in arguments. - ifs_save=$IFS - IFS=$'\n' + # This is to allow space characters in arguments. + local ifs_save="$IFS" + local IFS=$'\n' - for argument in $( echo "$action_helper_arguments" ) + for argument in $(printf '%s\n' "$action_helper_arguments") do - ( - IFS=$ifs_save + IFS="$ifs_save" - # Only a single argument at a time is returned by the helper. - project_action_arguments_recursive "$action" "$project" "$@" "$argument" - ) + # Only a single argument at a time is returned by the helper. + project_action_arguments_recursive "$action" "$project" "$@" "$argument" done - - IFS=$ifs_save fi } project_action_projects() { - local action=$1 + local action="$1" shift - local project=$1 + local project="$1" shift - local project_path=$( project_path "$project" ) + local project_path="$(project_path "$project")" local project_projects_path="$project_path/$CONFIGS/$PROJECTS" local project_projects_action_path="$project_path/$CONFIGS/$PROJECTS-$action" local arguments local path - if [ -f "$project_projects_action_path" ] - then - path=$project_projects_action_path + if [[ -f "$project_projects_action_path" ]]; then + path="$project_projects_action_path" else - path=$project_projects_path + path="$project_projects_path" fi # Multiple arguments can be read from the file. - while read arguments - do - eval "project_action_arguments "$action" $arguments" + while read -r arguments; do + eval "project_action_arguments $action $arguments" done < "$path" } @@ -298,7 +236,7 @@ project_path() { local project_path="$root/$PROJECTS/$project" - echo "$project_path" + printf '%s\n' "$project_path" } project_sources_path() { @@ -331,7 +269,7 @@ project_sources_path() { if ! [ -z "$sources_path" ] then - echo "$sources_path" + printf '%s\n' "$sources_path" return fi @@ -340,7 +278,7 @@ project_sources_path() { if directory_filled_check "$path" then - echo "$path" + printf '%s\n' "$path" return fi @@ -364,7 +302,7 @@ project_sources_path() { if ! [ -z "$sources_path" ] then - echo "$sources_path" + printf '%s\n' "$sources_path" return fi } @@ -381,13 +319,13 @@ project_sources_directory_filled_check() { project_sources_directory_filled_error() { local project=$1 shift - local arguments=$@ + local arguments="$*" local sources_path=$( project_sources_path "$project" "$@" ) if ! [ -z "$sources_path" ] then - printf "Sources directory for project $project (with ${arguments:-no argument}) already exists\n" >&2 + printf '%s\n' "Sources directory for project $project (with ${arguments:-no argument}) already exists" >&2 return 1 else return 0 @@ -397,13 +335,13 @@ project_sources_directory_filled_error() { project_sources_directory_missing_empty_error() { local project=$1 shift - local arguments=$@ + local arguments="$*" local sources_path=$( project_sources_path "$project" "$@" ) if [ -z "$sources_path" ] then - printf "Sources directory for project $project (with ${arguments:-no argument}) missing or empty\n" >&2 + printf '%s\n' "Sources directory for project $project (with ${arguments:-no argument}) missing or empty" >&2 return 1 else return 0 @@ -425,7 +363,7 @@ project_sources_archive() { path="$path-$argument" fi - local archive="$path.$TAR_XZ" + local archive="$path.$ARCHIVE" if ! [ -f "$archive" ] then @@ -437,19 +375,19 @@ project_sources_archive() { if ! [ -z "$sources_archive" ] then - echo "$sources_archive" + printf '%s\n' "$sources_archive" fi } project_sources_archive_extract() { local project=$1 shift - local arguments=$@ + local arguments="$*" local archive=$( project_sources_archive "$project" "$@" ) local destination=$( dirname "$archive" ) - printf "Extracting source archive for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Extracting source archive for $project (with ${arguments:-no argument})" file_verification_check "$archive" archive_extract "$archive" "$destination" @@ -458,7 +396,7 @@ project_sources_archive_extract() { project_sources_archive_update() { local project=$1 shift - local arguments=$@ + local arguments="$*" local repository=$project local sources_path=$( project_sources_path "$project" "$repository" "$@" ) @@ -470,7 +408,7 @@ project_sources_archive_update() { rm -rf "$sources_path" fi - printf "Extracting source archive for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Extracting source archive for $project (with ${arguments:-no argument})" file_verification_check "$archive" archive_extract "$archive" "$destination" @@ -479,12 +417,12 @@ project_sources_archive_update() { project_sources_archive_missing_error() { local project=$1 shift - local arguments=$@ + local arguments="$*" local archive=$( project_sources_archive "$project" "$@" ) if [ -z "$archive" ] || ! [ -f "$archive" ] then - printf "Missing sources archive for $project (with ${arguments:-no argument})\n" >&2 + printf '%s\n' "Missing sources archive for $project (with ${arguments:-no argument})" >&2 return 1 else return 0 @@ -504,6 +442,27 @@ project_sources_archive_missing_check() { fi } +project_sources_prepare() { + local project="$1" + local sources_path="$2" + + # Not implemented yet / May end up not being needed + #project_sources_prepare_blobs + project_sources_prepare_patch "$project" "$sources_path" "$@" +} + +project_sources_prepare_patch() { + local project="$1" + local sources_path="$2" + + local project_path="$(project_path "$project")" + local patches_path="$project_path/$PATCHES" + + for patch in "$patches_path"/[!.]*.@(patch|diff); do + diff_patch_file "$sources_path" "$patch" + done +} + project_blobs_path() { local project=$1 shift @@ -529,12 +488,12 @@ project_blobs_path() { if [ -f "$blobs_path" ] then - echo "$blobs_path" + printf '%s\n' "$blobs_path" return fi done - echo "$blobs_path" + printf '%s\n' "$blobs_path" } project_blobs_ignore_path() { @@ -562,7 +521,7 @@ project_blobs_ignore_path() { if [ -f "$blobs_ignore_path" ] then - echo "$blobs_ignore_path" + printf '%s\n' "$blobs_ignore_path" return fi done @@ -590,55 +549,53 @@ project_arguments_targets() { } project_usage_actions() { - local project=$1 + local project="$1" shift - printf "\nGeneric actions:\n" + printf '\n%s\n' 'Generic actions:' - for action in $PROJECT_ACTIONS_GENERIC - do - if function_check "$action" - then - printf " $action\n" - fi - done + ( + for action in "${PROJECT_ACTIONS_GENERIC[@]}"; do + if function_check "$action"; then + printf '%s\n' " $action" + fi + done + ) - if [ $# -gt 0 ] - then - printf "\nSpecific actions:\n" + if [[ "$#" -gt 0 ]]; then + printf '\n%s\n' 'Specific actions:' - for action in "$@" - do - printf " $action\n" - done + ( + for action in "$@"; do + printf '%s\n' " $action" + done + ) fi } project_usage_arguments() { - local project=$1 + local project="$1" shift - printf "\nArguments:\n" + printf '\n%s\n' 'Arguments:' - project_usage_arguments_recursive "$project" " " "$@" + project_usage_arguments_recursive "$project" ' ' "$@" } project_usage_arguments_recursive() { - local project=$1 + local project="$1" shift - local spacing=$1 + local spacing="$1" shift local action_helper_arguments local argument - action_helper_arguments=$( project_action_helper "arguments" "$project" "$@" ) + action_helper_arguments="$(project_action_helper 'arguments' "$project" "$@")" - if ! [ -z "$action_helper_arguments" ] - then - echo "$action_helper_arguments" | while read argument - do - printf "$spacing$argument\n" + if [[ -n "$action_helper_arguments" ]]; then + for argument in $action_helper_arguments; do + printf '%s\n' "$spacing$argument" project_usage_arguments_recursive "$project" " $spacing" "$@" "$argument" done fi @@ -676,6 +633,45 @@ project_download_check_git() { git_project_prepare_check "$project" "$repository" "$@" } +project_download_archive() { + local project="$1" + shift + local archive_uri="$1" + shift + local archive_dsig_uri="$1" + + local archive="${archive_uri##*/}" + local compress_fmt="${archive##*.tar}" + + local directory_prefix="$root/$SOURCES" + local archive_path="$root/$SOURCES/$archive" + local sources_path="$root/$SOURCES/$project" + + if [[ "${compress_fmt#*.}" != "${ARCHIVE#*.}" ]]; then + ARCHIVE="tar$compress_fmt" + fi + + # TODO: Split this code block into separate functions + # Archive verification will be included at that point in time + if ! project_sources_directory_filled_check "$project"; then + download_wrapper "$directory_prefix" "$archive_uri" "$archive_dsig_uri" + archive_extract "$archive_path" "$directory_prefix" + + mv "${archive_path%.tar*}" "$sources_path" + fi + + # Patch the source, if necessary + project_sources_prepare "$project" "$sources_path" +} + +project_download_check_archive() { + local project="$1" + local sources_path="$2" + + # TODO: Write the following function + #project_sources_archive_extract_check "$project" "$sources_path" +} + project_extract() { local project=$1 shift @@ -684,7 +680,7 @@ project_extract() { if ! project_sources_directory_filled_check "$project" "$repository" "$@" then - project_sources_archive_missing_error "$project" "$@" + project_sources_archive_missing_error "$project" "$@" || return 1 project_sources_archive_extract "$project" "$@" fi } @@ -727,7 +723,7 @@ project_update_check_git() { requirements "git" - if git_project_check "$repository" + if ! git_project_check "$repository" then # Git repository should always be updated (even if upstream didn't progress). # For instance, this is useful for testing new versions of patches without changing revision. @@ -767,13 +763,13 @@ project_build_check() { continue fi - while read rule + while read -r rule do - source=$( echo "$rule" | sed "s/$INSTALL_REGEX/\1/g" ) + source=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\1/g" ) source_path="$build_path/$source" # Source may contain a wildcard. - path_wildcard_expand "$source_path" | while read source_file_path + path_wildcard_expand "$source_path" | while read -r source_file_path do if ! [ -f "$source_file_path" ] && ! [ -d "$source_file_path" ] then @@ -796,19 +792,19 @@ project_build_path() { build_path="$build_path-$argument" done - echo "$build_path" + printf '%s\n' "$build_path" } project_build_directory_missing_empty_error() { local project=$1 shift - local arguments=$@ + local arguments="$*" local build_path=$( project_build_path "$project" "$@" ) if ! directory_filled_check "$build_path" then - printf "Build directory for project $project (with ${arguments:-no argument}) missing or empty\n" >&2 + printf '%s\n' "Build directory for project $project (with ${arguments:-no argument}) missing or empty" >&2 return 1 else return 0 @@ -849,19 +845,19 @@ project_install() { project_build_directory_missing_empty_error "$project" "$@" - while read rule + while read -r rule do - source=$( echo "$rule" | sed "s/$INSTALL_REGEX/\1/g" ) + source=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\1/g" ) source_path="$build_path/$source" - destination=$( echo "$rule" | sed "s/$INSTALL_REGEX/\2/g" ) + destination=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\2/g" ) destination_path="$install_path/$destination" destination_directory_path=$( dirname "$destination_path" ) mkdir -p "$destination_directory_path" # Source may contain a wildcard. - path_wildcard_expand "$source_path" | while read source_file_path + path_wildcard_expand "$source_path" | while read -r source_file_path do cp -rT "$source_file_path" "$destination_path" done @@ -890,19 +886,19 @@ project_install() { continue fi - while read rule + while read -r rule do - source=$( echo "$rule" | sed "s/$INSTALL_REGEX/\1/g" ) + source=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\1/g" ) source_path="$project_path/$INSTALL/$path/$source" - destination=$( echo "$rule" | sed "s/$INSTALL_REGEX/\2/g" ) + destination=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\2/g" ) destination_path="$install_path/$destination" destination_directory_path=$( dirname "$destination_path" ) mkdir -p "$destination_directory_path" # Source may contain a wildcard. - path_wildcard_expand "$source_path" | while read source_file_path + path_wildcard_expand "$source_path" | while read -r source_file_path do cp -rT "$source_file_path" "$destination_path" done @@ -943,9 +939,9 @@ project_install_check() { project_build_directory_missing_empty_error "$project" "$@" - while read rule + while read -r rule do - destination=$( echo "$rule" | sed "s/$INSTALL_REGEX/\2/g" ) + destination=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\2/g" ) destination_path="$install_path/$destination" if ! [ -f "$destination_path" ] && ! [ -d "$destination_path" ] @@ -977,9 +973,9 @@ project_install_check() { continue fi - while read rule + while read -r rule do - destination=$( echo "$rule" | sed "s/$INSTALL_REGEX/\2/g" ) + destination=$( printf '%s\n' "$rule" | sed "s/$INSTALL_REGEX/\\2/g" ) destination_path="$install_path/$destination" if ! [ -f "$destination_path" ] && ! [ -d "$destination_path" ] @@ -1002,19 +998,19 @@ project_install_path() { install_path="$install_path-$argument" done - echo "$install_path" + printf '%s\n' "$install_path" } project_install_directory_missing_empty_error() { local project=$1 shift - local arguments=$@ + local arguments="$*" local install_path=$( project_install_path "$project" "$@" ) if ! directory_filled_check "$install_path" then - printf "Install directory for project $project (with ${arguments:-no argument}) missing or empty\n" >&2 + printf '%s\n' "Install directory for project $project (with ${arguments:-no argument}) missing or empty" >&2 return 1 else return 0 @@ -1038,7 +1034,7 @@ project_release_path() { release_path="$release_path/$project" fi - echo "$release_path" + printf '%s\n' "$release_path" } project_release_archive_path() { @@ -1056,9 +1052,9 @@ project_release_archive_path() { path="$path-$argument" done - local archive_path="$release_path/$path.$TAR_XZ" + local archive_path="$release_path/$path.$ARCHIVE" - echo "$archive_path" + printf '%s\n' "$archive_path" } project_release_rootfs_path() { @@ -1076,9 +1072,9 @@ project_release_rootfs_path() { path="$path-$argument" done - local rootfs_path="$release_path/$path.$TAR_XZ" + local rootfs_path="$release_path/$path.$ARCHIVE" - echo "$rootfs_path" + printf '%s\n' "$rootfs_path" } project_release_sources_archive_path() { @@ -1109,22 +1105,22 @@ project_release_sources_archive_path() { if ! [ -z "$release_path" ] then - local archive_path="$root/$RELEASE/$SOURCES/$project/$release_path.$TAR_XZ" + local archive_path="$root/$RELEASE/$SOURCES/$project/$release_path.$ARCHIVE" - echo "$archive_path" + printf '%s\n' "$archive_path" fi } project_release_sources_archive_create() { local project=$1 shift - local arguments=$@ + local arguments="$*" local repository=$project local archive_path=$( project_release_sources_archive_path "$project" "$@" ) local sources_path=$( project_sources_path "$project" "$repository" "$@" ) - printf "Releasing sources archive for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Releasing sources archive for $project (with ${arguments:-no argument})" archive_create "$archive_path" "$sources_path" file_verification_create "$archive_path" @@ -1196,10 +1192,10 @@ project_release_install() { project_install_directory_missing_empty_error "$project" "$@" - local files=$( cd "$install_path" && find -type f || true ) + local files=$( find "$install_path" -type f || true ) local file - echo "$files" | while read file + printf '%s\n' "$files" | while read -r file do path="$release_path/$file" directory_path=$( dirname "$path" ) @@ -1223,10 +1219,10 @@ project_release_install_check() { project_install_directory_missing_empty_error "$project" "$@" - local files=$( cd "$install_path" && find -type f || true ) + local files=$( find "$install_path" -type f || true ) local file - echo "$files" | while read file + printf '%s\n' "$files" | while read -r file do path="$release_path/$file" @@ -1257,12 +1253,12 @@ project_release_install_archive_create() { shift local prefix=$1 shift - local arguments=$@ + local arguments="$*" local install_path=$( project_install_path "$project" "$@" ) local archive_path=$( project_release_archive_path "$project" "$prefix" "$@" ) - printf "Releasing $prefix archive for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Releasing $prefix archive for $project (with ${arguments:-no argument})" archive_create "$archive_path" "$install_path" file_verification_create "$archive_path" @@ -1305,12 +1301,12 @@ project_release_install_rootfs_create() { shift local prefix=$1 shift - local arguments=$@ + local arguments="$*" local install_path=$( project_install_path "$project" "$@" ) local rootfs_path=$( project_release_rootfs_path "$project" "$prefix" "$@" ) - printf "Releasing $prefix rootfs for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Releasing $prefix rootfs for $project (with ${arguments:-no argument})" rootfs_create "$rootfs_path" "$install_path" file_verification_create "$rootfs_path" @@ -1421,7 +1417,7 @@ project_file_path() { return 1 fi - echo "$file_path" + printf '%s\n' "$file_path" } project_file_test() { @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -15,16 +15,16 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -TOOL_ACTIONS_GENERIC="usage update execute" -TOOL_ACTIONS_HELPERS="arguments" -TOOL_FUNCTIONS=$( for action in $TOOL_ACTIONS_GENERIC ; do echo "$action" "$action""_check" ; done ; echo "$TOOL_ACTIONS_HELPERS" ) +TOOL_ACTIONS_GENERIC=(usage update execute) +TOOL_ACTIONS_GENERIC_IGNORE_CHECK=(usage update) +TOOL_ACTIONS_HELPERS=(arguments) tool_include() { local tool=$1 local tool_path=$( tool_path "$tool" ) - unset -f $TOOL_FUNCTIONS + unset -f "${TOOL_ACTIONS[@]}" . "$tool_path/$tool" @@ -46,9 +46,9 @@ tool_helper_include() { tool_check() { local tool="${1##*/}" - local tool_path="$(tool_path "${tool}")" + local tool_path="$(tool_path "$tool")" - if ! [[ -f "${tool_path}/${tool}" ]]; then + if ! [[ -f "$tool_path/$tool" ]]; then return 1 fi } @@ -79,7 +79,7 @@ tool_action() { if ! tool_check "$tool" then - printf "Tool $tool check failed\n" >&2 + printf '%s\n' "Tool $tool check failed" >&2 return 1 fi @@ -97,7 +97,7 @@ tool_action() { return 0 fi - printf "Tool $tool $action (with ${arguments:-no argument})\n" >&2 + printf '%s\n' "Tool $tool $action (with ${arguments:-no argument})" >&2 ( set -e @@ -106,10 +106,10 @@ tool_action() { if [ $? -ne 0 ] then - printf "\nTool $tool $action (with ${arguments:-no argument}) failed\n" >&2 + printf '\n%s\n' "Tool $tool $action (with ${arguments:-no argument}) failed" >&2 return 1 else - printf "\nTool $tool $action (with ${arguments:-no argument}) completed\n" >&2 + printf '\n%s\n' "Tool $tool $action (with ${arguments:-no argument}) completed" >&2 fi ) } @@ -125,7 +125,7 @@ tool_action_check() { if ! tool_check "$tool" then - printf "Tool $tool check failed\n" >&2 + printf '%s\n' "Tool $tool check failed" >&2 return 1 fi @@ -162,7 +162,7 @@ tool_action_helper() { if ! tool_check "$tool" then - printf "Tool $tool check failed\n" >&2 + printf '%s\n' "Tool $tool check failed" >&2 return 1 fi @@ -193,19 +193,38 @@ tool_action_arguments_recursive() { then tool_action "$action" "$tool" "$@" else - echo "$action_helper_arguments" | while read argument + printf '%s\n' "$action_helper_arguments" | while read argument do tool_action_arguments_recursive "$action" "$tool" "$@" "$argument" done fi } +tool_arguments_targets() { + local tool="$1" + shift + + local tool_path="$(tool_path "$tool")" + local targets_path="$tool_path/$CONFIGS" + local argument + + for argument in "$@"; do + targets_path="$targets_path/$argument" + done + + targets_path="$targets_path/$TARGETS" + + if [[ -f "$targets_path" ]]; then + cat "$targets_path" + fi +} + tool_path() { local tool=$1 local tool_path="$root/$TOOLS/$tool" - echo "$tool_path" + printf '%s\n' "$tool_path" } tool_sources_path() { @@ -224,7 +243,7 @@ tool_sources_path() { if directory_filled_check "$path" then - echo "$path" + printf '%s\n' "$path" return fi done @@ -234,23 +253,23 @@ tool_usage_actions() { local tool=$1 shift - printf "\nGeneric actions:\n" + printf '\n%s\n' 'Generic actions:' - for action in $TOOL_ACTIONS_GENERIC + for action in "${TOOL_ACTIONS_GENERIC[@]}" do if function_check "$action" then - printf " $action\n" + printf '%s\n' " $action" fi done if [ $# -gt 0 ] then - printf "\nSpecific actions:\n" + printf '\n%s\n' 'Specific actions:' for action in "$@" do - printf " $action\n" + printf '%s\n' " $action" done fi } @@ -259,7 +278,7 @@ tool_usage_arguments() { local tool=$1 shift - printf "\nArguments:\n" + printf '\n%s\n' 'Arguments:' tool_usage_arguments_recursive "$tool" " " "$@" } @@ -275,9 +294,9 @@ tool_usage_arguments_recursive() { if ! [ -z "$action_helper_arguments" ] then - echo "$action_helper_arguments" | while read argument + printf '%s\n' "$action_helper_arguments" | while read argument do - printf "$spacing$argument\n" + printf '%s\n' "$spacing$argument" tool_usage_arguments_recursive "$tool" " $spacing" "$@" "$argument" done fi @@ -316,7 +335,7 @@ tool_file_path() { return 1 fi - echo "$file_path" + printf '%s\n' "$file_path" } tool_file_test() { diff --git a/projects/bucts/bucts b/projects/bucts/bucts index 02766f8e..a5feeabc 100644 --- a/projects/bucts/bucts +++ b/projects/bucts/bucts @@ -16,95 +16,95 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. arguments() { - project_arguments_targets "${project}" "$@" + project_arguments_targets "$project" "$@" } usage() { - project_usage_actions "${project}" - project_usage_arguments "${project}" "$@" + project_usage_actions "$project" + project_usage_arguments "$project" "$@" } download() { - local repository="${project}" + local repository="$project" - project_download_git "${project}" "${repository}" 'git://git.stuge.se/bucts.git' "$@" + project_download_git "$project" "$repository" 'git://git.stuge.se/bucts.git' "$@" } download_check() { - local repository="${project}" + local repository="$project" - project_download_check_git "${project}" "${repository}" "$@" + project_download_check_git "$project" "$repository" "$@" } extract() { - local repository="${project}" + local repository="$project" - project_extract "${project}" "$@" + project_extract "$project" "$@" } extract_check() { - local repository="${project}" + local repository="$project" - project_extract_check "${project}" "$@" + project_extract_check "$project" "$@" } update() { - local repository="${project}" + local repository="$project" - project_update_git "${project}" "${repository}" "$@" + project_update_git "$project" "$repository" "$@" } update_check() { - local repository="${project}" + local repository="$project" - project_update_check_git "${project}" "${repository}" "$@" + project_update_check_git "$project" "$repository" "$@" } build() { - local repository="${project}" + local repository="$project" - project_sources_directory_missing_empty_error "${project}" "${repository}" "$@" + project_sources_directory_missing_empty_error "$project" "$repository" "$@" - if git_project_check "${repository}"; then - git_project_checkout "${project}" "${repository}" "$@" + if git_project_check "$repository"; then + git_project_checkout "$project" "$repository" "$@" fi - local sources_path="$(project_sources_path "${project}" "${repository}" "$@")" + local sources_path="$(project_sources_path "$project" "$repository" "$@")" - local build_path="$(project_build_path "${project}" "$@")" + local build_path="$(project_build_path "$project" "$@")" - mkdir -p "${build_path}" - make -C "${sources_path}" -j"${TASKS}" - cp "${sources_path}/bucts" "${build_path}" - make -C "${sources_path}" 'clean' + mkdir -p "$build_path" + make -C "$sources_path" -j"$TASKS" + cp "$sources_path/bucts" "$build_path" + make -C "$sources_path" 'clean' } build_check() { - project_build_check "${project}" "$@" + project_build_check "$project" "$@" } install() { - project_install "${project}" "$@" + project_install "$project" "$@" } install_check() { - project_install_check "${project}" "$@" + project_install_check "$project" "$@" } release() { - local repository="${project}" + local repository="$project" - project_release_install_archive "${project}" "${TOOLS}" "$@" - project_release_sources_git "${project}" "${repository}" "$@" + project_release_install_archive "$project" "$TOOLS" "$@" + project_release_sources_git "$project" "$repository" "$@" } release_check() { local repository="bucts" - project_release_install_archive_check "${project}" "${TOOLS}" "$@" - project_release_check_sources_git "${project}" "${repository}" "$@" + project_release_install_archive_check "$project" "$TOOLS" "$@" + project_release_check_sources_git "$project" "$repository" "$@" } clean() { - project_clean "${project}" "$@" + project_clean "$project" "$@" } diff --git a/projects/cbfstool/cbfstool b/projects/cbfstool/cbfstool index aa866027..eafe2ba9 100755 --- a/projects/cbfstool/cbfstool +++ b/projects/cbfstool/cbfstool @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -68,7 +68,7 @@ build() { git_project_checkout "$project" "$repository" "$@" fi - project_action "checkout" "vboot" "devices" + project_action_arguments "checkout" "vboot" "devices" mkdir -p "$build_path" diff --git a/projects/cbmem/cbmem b/projects/cbmem/cbmem index 50fcb7d5..6a469f61 100755 --- a/projects/cbmem/cbmem +++ b/projects/cbmem/cbmem @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/coreboot/configs/seabios/d510mo/arch b/projects/coreboot/configs/seabios/d510mo/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/d510mo/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/d510mo/config b/projects/coreboot/configs/seabios/d510mo/config new file mode 100644 index 00000000..168919ef --- /dev/null +++ b/projects/coreboot/configs/seabios/d510mo/config @@ -0,0 +1,521 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_EARLY_CBMEM_INIT is not set +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +CONFIG_FLASHMAP_OFFSET=0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +CONFIG_VENDOR_INTEL=y +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="intel/d510mo" +CONFIG_MAINBOARD_PART_NUMBER="D510MO" +CONFIG_MAINBOARD_VENDOR="Intel" +CONFIG_MAX_CPUS=4 +CONFIG_VGA_BIOS_ID="8086,a001" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +# CONFIG_UDELAY_IO is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xffafc000 +CONFIG_DCACHE_RAM_SIZE=0x4000 +CONFIG_MMCONF_BASE_ADDRESS=0xe0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Intel" +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x100000 +CONFIG_POST_DEVICE=y +# CONFIG_BOARD_INTEL_APOLLOLAKE_RVP1 is not set +# CONFIG_BOARD_INTEL_APOLLOLAKE_RVP2 is not set +# CONFIG_BOARD_INTEL_BAKERSPORT_FSP is not set +# CONFIG_BOARD_INTEL_BASKING_RIDGE is not set +# CONFIG_BOARD_INTEL_BAYLEYBAY_FSP is not set +# CONFIG_BOARD_INTEL_COUGAR_CANYON2 is not set +CONFIG_BOARD_INTEL_D510MO=y +# CONFIG_BOARD_INTEL_D810E2CB is not set +# CONFIG_BOARD_INTEL_D945GCLF is not set +# CONFIG_BOARD_INTEL_EAGLEHEIGHTS is not set +# CONFIG_BOARD_INTEL_EMERALDLAKE2 is not set +# CONFIG_BOARD_INTEL_GALILEO is not set +# CONFIG_BOARD_INTEL_KUNIMITSU is not set +# CONFIG_BOARD_INTEL_LITTLEPLAINS is not set +# CONFIG_BOARD_INTEL_MINNOWMAX is not set +# CONFIG_BOARD_INTEL_MOHONPEAK is not set +# CONFIG_BOARD_INTEL_MTARVON is not set +# CONFIG_BOARD_INTEL_STARGO2 is not set +# CONFIG_BOARD_INTEL_STRAGO is not set +# CONFIG_BOARD_INTEL_TRUXTON is not set +# CONFIG_BOARD_INTEL_WTM2 is not set +CONFIG_CPU_ADDR_BITS=32 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +CONFIG_COREBOOT_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=1024 +CONFIG_ROM_SIZE=0x100000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/pineview/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_106CX=y +CONFIG_CPU_INTEL_SOCKET_FCBGA559=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +CONFIG_UDELAY_LAPIC=y +CONFIG_LAPIC_MONOTONIC_TIMER=y +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +CONFIG_SERIALIZED_SMM_INITIALIZATION=y +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_PINEVIEW=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y + +# +# Super I/O +# +CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE=y +CONFIG_SUPERIO_WINBOND_W83627THG=y + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_SIPI_VECTOR_IN_ROM=y +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +CONFIG_LATE_CBMEM_INIT=y +CONFIG_PC80_SYSTEM=y +# CONFIG_HAVE_CMOS_DEFAULT is not set +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +# CONFIG_HAVE_ACPI_RESUME is not set +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +# CONFIG_HAVE_OPTION_TABLE is not set +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +# CONFIG_GENERATE_MP_TABLE is not set +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="D510MO" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/d510mo/revision b/projects/coreboot/configs/seabios/d510mo/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/d510mo/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/seabios/d945gclf/arch b/projects/coreboot/configs/seabios/d945gclf/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/d945gclf/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/d945gclf/config b/projects/coreboot/configs/seabios/d945gclf/config new file mode 100644 index 00000000..2cb14518 --- /dev/null +++ b/projects/coreboot/configs/seabios/d945gclf/config @@ -0,0 +1,598 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +# CONFIG_STATIC_OPTION_TABLE is not set +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_EARLY_CBMEM_LIST is not set +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +CONFIG_DEVICETREE="devicetree.cb" +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +CONFIG_VENDOR_INTEL=y +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="intel/d945gclf" +CONFIG_MAINBOARD_PART_NUMBER="D945GCLF" +CONFIG_IRQ_SLOT_COUNT=18 +CONFIG_MAINBOARD_VENDOR="Intel" +CONFIG_MAX_CPUS=4 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x80000 +CONFIG_UART_FOR_CONSOLE=0 +CONFIG_VGA_BIOS_ID="8086,27a2" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +# CONFIG_HAS_LVDS is not set +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Intel" +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +# CONFIG_BOARD_EMULATION_QEMU_ARMV7 is not set +# CONFIG_BOARD_EMULATION_QEMU_X86_I440FX is not set +# CONFIG_BOARD_EMULATION_QEMU_POWER8 is not set +# CONFIG_BOARD_EMULATION_QEMU_X86_Q35 is not set +# CONFIG_BOARD_EMULATION_QEMU_UCB_RISCV is not set +# CONFIG_BOARD_EMULATION_SPIKE_UCB_RISCV is not set +CONFIG_POST_DEVICE=y +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_TTYS0_LCS=3 +# CONFIG_BOARD_INTEL_AMENIA is not set +# CONFIG_BOARD_INTEL_APOLLOLAKE_RVP1 is not set +# CONFIG_BOARD_INTEL_APOLLOLAKE_RVP2 is not set +# CONFIG_BOARD_INTEL_BAKERSPORT_FSP is not set +# CONFIG_BOARD_INTEL_BASKING_RIDGE is not set +# CONFIG_BOARD_INTEL_BAYLEYBAY_FSP is not set +# CONFIG_BOARD_INTEL_CAMELBACKMOUNTAIN_FSP is not set +# CONFIG_BOARD_INTEL_COUGAR_CANYON2 is not set +# CONFIG_BOARD_INTEL_D510MO is not set +# CONFIG_BOARD_INTEL_D810E2CB is not set +CONFIG_BOARD_INTEL_D945GCLF=y +# CONFIG_BOARD_INTEL_EAGLEHEIGHTS is not set +# CONFIG_BOARD_INTEL_EMERALDLAKE2 is not set +# CONFIG_BOARD_INTEL_GALILEO is not set +# CONFIG_BOARD_INTEL_KUNIMITSU is not set +# CONFIG_BOARD_INTEL_LITTLEPLAINS is not set +# CONFIG_BOARD_INTEL_MINNOWMAX is not set +# CONFIG_BOARD_INTEL_MOHONPEAK is not set +# CONFIG_BOARD_INTEL_MTARVON is not set +# CONFIG_BOARD_INTEL_STARGO2 is not set +# CONFIG_BOARD_INTEL_STRAGO is not set +# CONFIG_BOARD_INTEL_TRUXTON is not set +# CONFIG_BOARD_INTEL_WTM2 is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +CONFIG_CPU_ADDR_BITS=32 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_NO_POST is not set +CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0 +CONFIG_BOARD_ROMSIZE_KB_512=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +CONFIG_COREBOOT_ROMSIZE_KB_512=y +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=512 +CONFIG_ROM_SIZE=0x80000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/i945/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_TTYS0_BASE=0x3f8 +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_106CX=y +CONFIG_SSE2=y +CONFIG_CPU_INTEL_SOCKET_441=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +CONFIG_UDELAY_LAPIC=y +CONFIG_LAPIC_MONOTONIC_TIMER=y +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +CONFIG_SERIALIZED_SMM_INITIALIZATION=y +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +# CONFIG_SOC_SETS_MSRS is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_I945=y +CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GC=y +# CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM is not set +CONFIG_CHANNEL_XOR_RANDOMIZATION=y +# CONFIG_OVERRIDE_CLOCK_DISABLE is not set +CONFIG_CHECK_SLFRCS_ON_RESUME=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y + +# +# Super I/O +# +CONFIG_SUPERIO_SMSC_LPC47M15X=y + +# +# Embedded Controllers +# +CONFIG_VBOOT_VBNV_OFFSET=0x26 +# CONFIG_VBOOT_VBNV_CMOS is not set +# CONFIG_VBOOT_VBNV_EC is not set +# CONFIG_VBOOT is not set +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_UDK_2015_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_SIPI_VECTOR_IN_ROM=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +# CONFIG_HAVE_CMOS_DEFAULT is not set +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +CONFIG_DRIVERS_UART=y +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +# CONFIG_INTEL_INT15 is not set +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +CONFIG_DRIVERS_INTEL_WIFI=y +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +# CONFIG_BOOT_DEVICE_NOT_SPI_FLASH is not set +CONFIG_BOOT_DEVICE_SPI_FLASH=y +CONFIG_BOOT_DEVICE_MEMORY_MAPPED=y +# CONFIG_BOOT_DEVICE_SUPPORTS_WRITES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +CONFIG_CONSOLE_SERIAL=y + +# +# I/O mapped, 8250-compatible +# + +# +# Serial port base address = 0x3f8 +# +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +CONFIG_CONSOLE_SERIAL_115200=y +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +CONFIG_TTYS0_BAUD=115200 +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_HAVE_PIRQ_TABLE=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="D945GCLF" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_BAYOU is not set +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +# CONFIG_SEABIOS_STABLE is not set +# CONFIG_SEABIOS_MASTER is not set +# CONFIG_SEABIOS_REVISION is not set +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_GDB_STUB is not set +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/d945gclf/revision b/projects/coreboot/configs/seabios/d945gclf/revision new file mode 100644 index 00000000..f6e726f0 --- /dev/null +++ b/projects/coreboot/configs/seabios/d945gclf/revision @@ -0,0 +1 @@ +36d405268f040208cd26902f3c0b5346f7d4d25b diff --git a/projects/coreboot/configs/seabios/ga-g41m-es2l/arch b/projects/coreboot/configs/seabios/ga-g41m-es2l/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/ga-g41m-es2l/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/ga-g41m-es2l/config b/projects/coreboot/configs/seabios/ga-g41m-es2l/config new file mode 100644 index 00000000..196aea73 --- /dev/null +++ b/projects/coreboot/configs/seabios/ga-g41m-es2l/config @@ -0,0 +1,543 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_EARLY_CBMEM_LIST is not set +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +CONFIG_VENDOR_GIGABYTE=y +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="gigabyte/ga-g41m-es2l" +CONFIG_MAINBOARD_PART_NUMBER="GA-G41M-ES2L" +CONFIG_MAINBOARD_VENDOR="GIGABYTE" +CONFIG_MAX_CPUS=1 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x100000 +CONFIG_VGA_BIOS_ID="8086,2e32" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xfeffc000 +CONFIG_DCACHE_RAM_SIZE=0x4000 +CONFIG_MMCONF_BASE_ADDRESS=0xe0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="GIGABYTE" +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +# CONFIG_BOARD_GIGABYTE_GA_6BXC is not set +# CONFIG_BOARD_GIGABYTE_GA_6BXE is not set +# CONFIG_BOARD_GIGABYTE_GA_B75M_D3H is not set +# CONFIG_BOARD_GIGABYTE_GA_B75M_D3V is not set +CONFIG_BOARD_GIGABYTE_GA_G41M_ES2L=y +# CONFIG_BOARD_GIGABYTE_GA_2761GXDK is not set +# CONFIG_BOARD_GIGABYTE_M57SLI is not set +# CONFIG_BOARD_GIGABYTE_MA785GM is not set +# CONFIG_BOARD_GIGABYTE_MA785GMT is not set +# CONFIG_BOARD_GIGABYTE_MA78GM is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +CONFIG_COREBOOT_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=1024 +CONFIG_ROM_SIZE=0x100000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/x4x/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_6EX=y +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_MODEL_F3X=y +CONFIG_CPU_INTEL_MODEL_F4X=y +CONFIG_SSE2=y +CONFIG_CPU_INTEL_SOCKET_LGA775=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +CONFIG_UDELAY_LAPIC=y +# CONFIG_LAPIC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_X4X=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y + +# +# Super I/O +# +CONFIG_SUPERIO_ITE_COMMON_ROMSTAGE=y +CONFIG_SUPERIO_ITE_IT8718F=y + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +CONFIG_SIPI_VECTOR_IN_ROM=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +# CONFIG_HAVE_CMOS_DEFAULT is not set +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG is not set +# CONFIG_ON_DEVICE_ROM_LOAD is not set +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_CLK_PM=y +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_PCIEXP_L1_SUB_STATE=y +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set +CONFIG_REALTEK_8168_RESET=y +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +# CONFIG_INTEL_INT15 is not set +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES=y +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +# CONFIG_HAVE_ACPI_RESUME is not set +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +# CONFIG_HAVE_OPTION_TABLE is not set +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +# CONFIG_GENERATE_MP_TABLE is not set +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="GA-G41M-ES2L" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/ga-g41m-es2l/revision b/projects/coreboot/configs/seabios/ga-g41m-es2l/revision new file mode 100644 index 00000000..e785a260 --- /dev/null +++ b/projects/coreboot/configs/seabios/ga-g41m-es2l/revision @@ -0,0 +1 @@ +7c2e5396a3d47c64eb5a553fe412aad4c0f8dc1b diff --git a/projects/coreboot/configs/seabios/kcma-d8/arch b/projects/coreboot/configs/seabios/kcma-d8/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/kcma-d8/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/kcma-d8/config b/projects/coreboot/configs/seabios/kcma-d8/config new file mode 100644 index 00000000..3ae9245a --- /dev/null +++ b/projects/coreboot/configs/seabios/kcma-d8/config @@ -0,0 +1,602 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +CONFIG_VENDOR_ASUS=y +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="asus/kcma-d8" +CONFIG_MAINBOARD_PART_NUMBER="KCMA-D8" +CONFIG_IRQ_SLOT_COUNT=13 +CONFIG_MAINBOARD_VENDOR="ASUS" +CONFIG_APIC_ID_OFFSET=0 +CONFIG_HW_MEM_HOLE_SIZEK=0x100000 +CONFIG_MAX_CPUS=16 +CONFIG_MAX_PHYSICAL_CPUS=2 +# CONFIG_HW_MEM_HOLE_SIZE_AUTO_INC is not set +CONFIG_HT_CHAIN_END_UNITID_BASE=0x20 +CONFIG_HT_CHAIN_UNITID_BASE=0x0 +CONFIG_ONBOARD_VGA_IS_PRIMARY=y +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xc2000 +CONFIG_DCACHE_RAM_SIZE=0x1e000 +CONFIG_MMCONF_BASE_ADDRESS=0xc0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="ASUS" +# CONFIG_BOARD_ASUS_A8N_E is not set +# CONFIG_BOARD_ASUS_A8N_SLI is not set +# CONFIG_BOARD_ASUS_A8V_E_DELUXE is not set +# CONFIG_BOARD_ASUS_A8V_E_SE is not set +# CONFIG_BOARD_ASUS_DSBF is not set +# CONFIG_BOARD_ASUS_F2A85_M is not set +# CONFIG_BOARD_ASUS_F2A85_M_LE is not set +# CONFIG_BOARD_ASUS_K8V_X is not set +CONFIG_BOARD_ASUS_KCMA_D8=y +# CONFIG_BOARD_ASUS_KFSN4_DRE is not set +# CONFIG_BOARD_ASUS_KFSN4_DRE_K8 is not set +# CONFIG_BOARD_ASUS_KGPE_D16 is not set +# CONFIG_BOARD_ASUS_M2N_E is not set +# CONFIG_BOARD_ASUS_M2V_MX_SE is not set +# CONFIG_BOARD_ASUS_M2V is not set +# CONFIG_BOARD_ASUS_M4A78_EM is not set +# CONFIG_BOARD_ASUS_M4A785M is not set +# CONFIG_BOARD_ASUS_M4A785TM is not set +# CONFIG_BOARD_ASUS_M5A88_V is not set +# CONFIG_BOARD_ASUS_MEW_AM is not set +# CONFIG_BOARD_ASUS_MEW_VM is not set +# CONFIG_BOARD_ASUS_P2B_D is not set +# CONFIG_BOARD_ASUS_P2B_DS is not set +# CONFIG_BOARD_ASUS_P2B_F is not set +# CONFIG_BOARD_ASUS_P2B_LS is not set +# CONFIG_BOARD_ASUS_P2B is not set +# CONFIG_BOARD_ASUS_P3B_F is not set +# CONFIG_POST_IO is not set +CONFIG_AGP_APERTURE_SIZE=0x4000000 +CONFIG_BOOTBLOCK_MAINBOARD_INIT="mainboard/asus/kcma-d8/bootblock.c" +CONFIG_SOUTHBRIDGE_AMD_SB700_SATA_PORT_COUNT_BITFIELD=0x3f +CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL=y +CONFIG_MAX_REBOOT_CNT=10 +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x400000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x200000 +# CONFIG_POST_DEVICE is not set +CONFIG_BOOT_MEDIA_SPI_BUS=0 +CONFIG_CONSOLE_POST=y +CONFIG_DRIVERS_UART_8250IO=y +CONFIG_UDELAY_LAPIC_FIXED_FSB=200 +CONFIG_CPU_ADDR_BITS=48 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +CONFIG_COREBOOT_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=2048 +CONFIG_ROM_SIZE=0x200000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_DCACHE_BSP_STACK_SIZE=0x4000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/amd/amdfam10/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/amd/sb700/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0xc0000 +CONFIG_CONSOLE_CBMEM=y +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_DCACHE_BSP_STACK_SLUSH=0x4000 +CONFIG_DCACHE_AP_STACK_SIZE=0x500 +CONFIG_CPU_SOCKET_TYPE=0x14 +# CONFIG_EXT_RT_TBL_SUPPORT is not set +CONFIG_CBB=0x0 +CONFIG_CDB=0x18 +CONFIG_XIP_ROM_SIZE=0x80000 +CONFIG_CPU_AMD_SOCKET_C32_NON_AGESA=y +CONFIG_DIMM_SUPPORT=0x0005 +CONFIG_LIFT_BSP_APIC_ID=y +CONFIG_SET_FIDVID=y +CONFIG_SET_FIDVID_DEBUG=y +# CONFIG_SET_FIDVID_CORE0_ONLY is not set +CONFIG_SET_FIDVID_STORE_AP_APICID_AT_FIRST=y +CONFIG_CPU_AMD_MODEL_10XXX=y +CONFIG_USE_LARGE_DCACHE=y +CONFIG_NUM_IPI_STARTS=1 +CONFIG_SET_FIDVID_CORE_RANGE=0 +# CONFIG_CPU_AMD_AGESA is not set +CONFIG_S3_DATA_POS=0x0 +CONFIG_S3_DATA_SIZE=32768 +# CONFIG_CPU_AMD_PI is not set +# CONFIG_EXT_CONF_SUPPORT is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +CONFIG_PARALLEL_CPU_INIT=y +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +CONFIG_UDELAY_LAPIC=y +# CONFIG_LAPIC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +CONFIG_TSC_SYNC_LFENCE=y +# CONFIG_TSC_SYNC_MFENCE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +CONFIG_X86_AMD_FIXED_MTRRS=y +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +CONFIG_MMCONF_BUS_NUMBER=256 +CONFIG_NORTHBRIDGE_AMD_AMDFAM10=y +CONFIG_SB_HT_CHAIN_UNITID_OFFSET_ONLY=y +# CONFIG_HT_CHAIN_DISTRIBUTE is not set +# CONFIG_DIMM_FBDIMM is not set +# CONFIG_DIMM_DDR2 is not set +CONFIG_DIMM_DDR3=y +CONFIG_DIMM_REGISTERED=y +CONFIG_DIMM_VOLTAGE_SET_SUPPORT=y +# CONFIG_SVI_HIGH_FREQ is not set + +# +# HyperTransport setup +# +# CONFIG_LIMIT_HT_DOWN_WIDTH_8 is not set +CONFIG_LIMIT_HT_DOWN_WIDTH_16=y +# CONFIG_LIMIT_HT_UP_WIDTH_8 is not set +CONFIG_LIMIT_HT_UP_WIDTH_16=y +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x14 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_AMD_SB700=y +CONFIG_SOUTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_SOUTHBRIDGE_AMD_SUBTYPE_SP5100=y +# CONFIG_SOUTHBRIDGE_AMD_SB700_SKIP_ISA_DMA_INIT is not set +CONFIG_SOUTHBRIDGE_AMD_SB700_DISABLE_ISA_DMA=y +CONFIG_SOUTHBRIDGE_AMD_SR5650=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set + +# +# Super I/O +# +CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE=y +CONFIG_SUPERIO_WINBOND_W83667HG_A=y + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +CONFIG_VERSTAGE_ADDR=0x2000000 +# CONFIG_POSTCAR_STAGE is not set + +# +# Devices +# +# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +# CONFIG_VGA_ROM_RUN is not set +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +CONFIG_SMBUS_HAS_AUX_CHANNELS=y +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_CLK_PM=y +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_PCIEXP_L1_SUB_STATE=y +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_ELOG is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +CONFIG_SPI_FLASH=y +CONFIG_SPI_ATOMIC_SEQUENCING=y +CONFIG_SPI_FLASH_MEMORY_MAPPED=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_SPI_FLASH_FAST_READ_DUAL_OUTPUT_3B is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_DRIVERS_ASPEED_AST2050=y +CONFIG_DEVICE_SPECIFIC_OPTIONS=y +CONFIG_DRIVERS_ASPEED_AST_COMMON=y +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_I2C_W83795=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +# CONFIG_INTEL_EDID is not set +# CONFIG_INTEL_INT15 is not set +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK=y +CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK=y +CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK=y +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +# CONFIG_HAVE_SMI_HANDLER is not set +CONFIG_PCI_IO_CFG_EXT=y +CONFIG_IOAPIC=y +# CONFIG_USE_WATCHDOG_ON_BOOT is not set +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_HAVE_PIRQ_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="KCMA-D8" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_CAR=y +# CONFIG_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_TRACE is not set +CONFIG_ENABLE_APIC_EXT_ID=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/kcma-d8/revision b/projects/coreboot/configs/seabios/kcma-d8/revision new file mode 100644 index 00000000..a4c248f2 --- /dev/null +++ b/projects/coreboot/configs/seabios/kcma-d8/revision @@ -0,0 +1 @@ +eee0e229764e965996479d7eb07e6086176b8bf0 diff --git a/projects/coreboot/configs/seabios/kfsn4-dre/arch b/projects/coreboot/configs/seabios/kfsn4-dre/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/kfsn4-dre/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/kfsn4-dre/config b/projects/coreboot/configs/seabios/kfsn4-dre/config new file mode 100644 index 00000000..f554fbfb --- /dev/null +++ b/projects/coreboot/configs/seabios/kfsn4-dre/config @@ -0,0 +1,610 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +CONFIG_VENDOR_ASUS=y +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="asus/kfsn4-dre" +CONFIG_MAINBOARD_PART_NUMBER="KFSN4-DRE" +CONFIG_IRQ_SLOT_COUNT=13 +CONFIG_MAINBOARD_VENDOR="ASUS" +CONFIG_APIC_ID_OFFSET=0 +CONFIG_HW_MEM_HOLE_SIZEK=0x100000 +CONFIG_MAX_CPUS=12 +CONFIG_MAX_PHYSICAL_CPUS=2 +# CONFIG_HW_MEM_HOLE_SIZE_AUTO_INC is not set +CONFIG_HT_CHAIN_END_UNITID_BASE=0x20 +CONFIG_HT_CHAIN_UNITID_BASE=0x0 +CONFIG_ONBOARD_VGA_IS_PRIMARY=y +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xc4000 +CONFIG_DCACHE_RAM_SIZE=0x0c000 +CONFIG_MMCONF_BASE_ADDRESS=0xc0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="ASUS" +# CONFIG_BOARD_ASUS_A8N_E is not set +# CONFIG_BOARD_ASUS_A8N_SLI is not set +# CONFIG_BOARD_ASUS_A8V_E_DELUXE is not set +# CONFIG_BOARD_ASUS_A8V_E_SE is not set +# CONFIG_BOARD_ASUS_DSBF is not set +# CONFIG_BOARD_ASUS_F2A85_M is not set +# CONFIG_BOARD_ASUS_F2A85_M_LE is not set +# CONFIG_BOARD_ASUS_K8V_X is not set +# CONFIG_BOARD_ASUS_KCMA_D8 is not set +CONFIG_BOARD_ASUS_KFSN4_DRE=y +# CONFIG_BOARD_ASUS_KFSN4_DRE_K8 is not set +# CONFIG_BOARD_ASUS_KGPE_D16 is not set +# CONFIG_BOARD_ASUS_M2N_E is not set +# CONFIG_BOARD_ASUS_M2V_MX_SE is not set +# CONFIG_BOARD_ASUS_M2V is not set +# CONFIG_BOARD_ASUS_M4A78_EM is not set +# CONFIG_BOARD_ASUS_M4A785M is not set +# CONFIG_BOARD_ASUS_M4A785TM is not set +# CONFIG_BOARD_ASUS_M5A88_V is not set +# CONFIG_BOARD_ASUS_MEW_AM is not set +# CONFIG_BOARD_ASUS_MEW_VM is not set +# CONFIG_BOARD_ASUS_P2B_D is not set +# CONFIG_BOARD_ASUS_P2B_DS is not set +# CONFIG_BOARD_ASUS_P2B_F is not set +# CONFIG_BOARD_ASUS_P2B_LS is not set +# CONFIG_BOARD_ASUS_P2B is not set +# CONFIG_BOARD_ASUS_P3B_F is not set +CONFIG_POST_IO=y +CONFIG_AGP_APERTURE_SIZE=0x4000000 +CONFIG_BOOTBLOCK_MAINBOARD_INIT="mainboard/asus/kfsn4-dre/bootblock.c" +CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL=y +CONFIG_MAX_REBOOT_CNT=10 +CONFIG_CK804_PCI_E_X=1 +CONFIG_CK804_PCIE_PME_WAKE=y +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_UART_FOR_CONSOLE=0 +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x400000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x100000 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=0 +CONFIG_TTYS0_LCS=3 +CONFIG_UDELAY_LAPIC_FIXED_FSB=200 +CONFIG_CPU_ADDR_BITS=48 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +CONFIG_USBDEBUG=y +CONFIG_MAINBOARD_VERSION="1.0" +CONFIG_DRIVERS_PS2_KEYBOARD=y +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_CK804_NUM=1 +CONFIG_BOARD_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +CONFIG_COREBOOT_ROMSIZE_KB_1024=y +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=1024 +CONFIG_ROM_SIZE=0x100000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_DCACHE_BSP_STACK_SIZE=0x4000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/amd/amdfam10/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/nvidia/ck804/bootblock.c" +CONFIG_TTYS0_BASE=0x3f8 +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0xc0000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_DCACHE_BSP_STACK_SLUSH=0x1000 +CONFIG_DCACHE_AP_STACK_SIZE=0x500 +CONFIG_CPU_SOCKET_TYPE=0x10 +# CONFIG_EXT_RT_TBL_SUPPORT is not set +CONFIG_CBB=0x0 +CONFIG_CDB=0x18 +CONFIG_XIP_ROM_SIZE=0x80000 +CONFIG_CPU_AMD_SOCKET_F_1207=y +CONFIG_DIMM_SUPPORT=0x0104 +CONFIG_LIFT_BSP_APIC_ID=y +CONFIG_SET_FIDVID=y +CONFIG_SET_FIDVID_DEBUG=y +# CONFIG_SET_FIDVID_CORE0_ONLY is not set +CONFIG_SET_FIDVID_STORE_AP_APICID_AT_FIRST=y +CONFIG_CPU_AMD_MODEL_10XXX=y +# CONFIG_USE_LARGE_DCACHE is not set +CONFIG_NUM_IPI_STARTS=1 +CONFIG_SET_FIDVID_CORE_RANGE=0 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +CONFIG_PARALLEL_CPU_INIT=y +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +CONFIG_UDELAY_LAPIC=y +# CONFIG_LAPIC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +CONFIG_TSC_SYNC_LFENCE=y +# CONFIG_TSC_SYNC_MFENCE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +CONFIG_X86_AMD_FIXED_MTRRS=y +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +CONFIG_MMCONF_BUS_NUMBER=256 +CONFIG_NORTHBRIDGE_AMD_AMDFAM10=y +# CONFIG_SB_HT_CHAIN_UNITID_OFFSET_ONLY is not set +# CONFIG_HT_CHAIN_DISTRIBUTE is not set +# CONFIG_DIMM_FBDIMM is not set +CONFIG_DIMM_DDR2=y +# CONFIG_DIMM_DDR3 is not set +CONFIG_DIMM_REGISTERED=y +# CONFIG_DIMM_VOLTAGE_SET_SUPPORT is not set +# CONFIG_SVI_HIGH_FREQ is not set + +# +# HyperTransport setup +# +# CONFIG_LIMIT_HT_DOWN_WIDTH_8 is not set +CONFIG_LIMIT_HT_DOWN_WIDTH_16=y +# CONFIG_LIMIT_HT_UP_WIDTH_8 is not set +CONFIG_LIMIT_HT_UP_WIDTH_16=y +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0xfa +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_NVIDIA_CK804=y +# CONFIG_CK804_USE_NIC is not set +# CONFIG_CK804_USE_ACI is not set +CONFIG_CK804B_PCI_E_X=4 + +# +# Super I/O +# +CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE=y +CONFIG_SUPERIO_WINBOND_W83627THG=y + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +# CONFIG_NATIVE_VGA_INIT_USE_EDID is not set +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_CLK_PM=y +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_PCIEXP_L1_SUB_STATE=y +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +CONFIG_DEVICE_SPECIFIC_OPTIONS=y +# CONFIG_GIC is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_I2C_W83793=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +# CONFIG_INTEL_EDID is not set +# CONFIG_INTEL_INT15 is not set +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +CONFIG_DRIVERS_UART=y +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +CONFIG_USBDEBUG_IN_ROMSTAGE=y +CONFIG_USBDEBUG_DEFAULT_PORT=0 +CONFIG_USBDEBUG_DONGLE_STD=y +# CONFIG_USBDEBUG_DONGLE_BEAGLEBONE is not set +# CONFIG_USBDEBUG_DONGLE_BEAGLEBONE_BLACK is not set +# CONFIG_USBDEBUG_DONGLE_FTDI_FT232H is not set +CONFIG_USBDEBUG_OPTIONAL_HUB_PORT=0 +CONFIG_DRIVERS_XGI_Z79_COMMON=y +CONFIG_DRIVERS_XGI_Z9S=y +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +CONFIG_CONSOLE_SERIAL=y + +# +# I/O mapped, 8250-compatible +# + +# +# Serial port base address = 0x3f8 +# +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +CONFIG_CONSOLE_SERIAL_115200=y +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +CONFIG_TTYS0_BAUD=115200 +# CONFIG_SPKMODEM is not set +CONFIG_CONSOLE_USB=y +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +# CONFIG_HAVE_ACPI_RESUME is not set +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +# CONFIG_HAVE_SMI_HANDLER is not set +CONFIG_PCI_IO_CFG_EXT=y +CONFIG_IOAPIC=y +# CONFIG_USE_WATCHDOG_ON_BOOT is not set +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_HAVE_PIRQ_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="KFSN4-DRE" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_GDB_STUB is not set +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_CAR=y +# CONFIG_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_DEBUG_USBDEBUG is not set +# CONFIG_TRACE is not set +CONFIG_ENABLE_APIC_EXT_ID=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/kfsn4-dre/revision b/projects/coreboot/configs/seabios/kfsn4-dre/revision new file mode 100644 index 00000000..fabe7537 --- /dev/null +++ b/projects/coreboot/configs/seabios/kfsn4-dre/revision @@ -0,0 +1 @@ +15fca66bf08db45937ce88b950491963654805b9 diff --git a/projects/coreboot/configs/seabios/kgpe-d16/arch b/projects/coreboot/configs/seabios/kgpe-d16/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/kgpe-d16/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/kgpe-d16/config b/projects/coreboot/configs/seabios/kgpe-d16/config new file mode 100644 index 00000000..db0ab7f1 --- /dev/null +++ b/projects/coreboot/configs/seabios/kgpe-d16/config @@ -0,0 +1,602 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +CONFIG_VENDOR_ASUS=y +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="asus/kgpe-d16" +CONFIG_MAINBOARD_PART_NUMBER="KGPE-D16" +CONFIG_IRQ_SLOT_COUNT=13 +CONFIG_MAINBOARD_VENDOR="ASUS" +CONFIG_APIC_ID_OFFSET=0 +CONFIG_HW_MEM_HOLE_SIZEK=0x100000 +CONFIG_MAX_CPUS=32 +CONFIG_MAX_PHYSICAL_CPUS=4 +# CONFIG_HW_MEM_HOLE_SIZE_AUTO_INC is not set +CONFIG_HT_CHAIN_END_UNITID_BASE=0x20 +CONFIG_HT_CHAIN_UNITID_BASE=0x0 +CONFIG_ONBOARD_VGA_IS_PRIMARY=y +# CONFIG_VGA_BIOS is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xc2000 +CONFIG_DCACHE_RAM_SIZE=0x1e000 +CONFIG_MMCONF_BASE_ADDRESS=0xc0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="ASUS" +# CONFIG_BOARD_ASUS_A8N_E is not set +# CONFIG_BOARD_ASUS_A8N_SLI is not set +# CONFIG_BOARD_ASUS_A8V_E_DELUXE is not set +# CONFIG_BOARD_ASUS_A8V_E_SE is not set +# CONFIG_BOARD_ASUS_DSBF is not set +# CONFIG_BOARD_ASUS_F2A85_M is not set +# CONFIG_BOARD_ASUS_F2A85_M_LE is not set +# CONFIG_BOARD_ASUS_K8V_X is not set +# CONFIG_BOARD_ASUS_KCMA_D8 is not set +# CONFIG_BOARD_ASUS_KFSN4_DRE is not set +# CONFIG_BOARD_ASUS_KFSN4_DRE_K8 is not set +CONFIG_BOARD_ASUS_KGPE_D16=y +# CONFIG_BOARD_ASUS_M2N_E is not set +# CONFIG_BOARD_ASUS_M2V_MX_SE is not set +# CONFIG_BOARD_ASUS_M2V is not set +# CONFIG_BOARD_ASUS_M4A78_EM is not set +# CONFIG_BOARD_ASUS_M4A785M is not set +# CONFIG_BOARD_ASUS_M4A785TM is not set +# CONFIG_BOARD_ASUS_M5A88_V is not set +# CONFIG_BOARD_ASUS_MEW_AM is not set +# CONFIG_BOARD_ASUS_MEW_VM is not set +# CONFIG_BOARD_ASUS_P2B_D is not set +# CONFIG_BOARD_ASUS_P2B_DS is not set +# CONFIG_BOARD_ASUS_P2B_F is not set +# CONFIG_BOARD_ASUS_P2B_LS is not set +# CONFIG_BOARD_ASUS_P2B is not set +# CONFIG_BOARD_ASUS_P3B_F is not set +# CONFIG_POST_IO is not set +CONFIG_AGP_APERTURE_SIZE=0x4000000 +CONFIG_BOOTBLOCK_MAINBOARD_INIT="mainboard/asus/kgpe-d16/bootblock.c" +CONFIG_SOUTHBRIDGE_AMD_SB700_SATA_PORT_COUNT_BITFIELD=0x3f +CONFIG_MAINBOARD_POWER_ON_AFTER_POWER_FAIL=y +CONFIG_MAX_REBOOT_CNT=10 +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x400000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x200000 +# CONFIG_POST_DEVICE is not set +CONFIG_BOOT_MEDIA_SPI_BUS=0 +CONFIG_CONSOLE_POST=y +CONFIG_DRIVERS_UART_8250IO=y +CONFIG_UDELAY_LAPIC_FIXED_FSB=200 +CONFIG_CPU_ADDR_BITS=48 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +CONFIG_COREBOOT_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=2048 +CONFIG_ROM_SIZE=0x200000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_DCACHE_BSP_STACK_SIZE=0x4000 +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/amd/amdfam10/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/amd/sb700/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0xc0000 +CONFIG_CONSOLE_CBMEM=y +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_DCACHE_BSP_STACK_SLUSH=0x4000 +CONFIG_DCACHE_AP_STACK_SIZE=0x500 +CONFIG_CPU_SOCKET_TYPE=0x15 +# CONFIG_EXT_RT_TBL_SUPPORT is not set +CONFIG_CBB=0x0 +CONFIG_CDB=0x18 +CONFIG_XIP_ROM_SIZE=0x80000 +CONFIG_CPU_AMD_SOCKET_G34_NON_AGESA=y +CONFIG_DIMM_SUPPORT=0x0005 +CONFIG_LIFT_BSP_APIC_ID=y +CONFIG_SET_FIDVID=y +CONFIG_SET_FIDVID_DEBUG=y +# CONFIG_SET_FIDVID_CORE0_ONLY is not set +CONFIG_SET_FIDVID_STORE_AP_APICID_AT_FIRST=y +CONFIG_CPU_AMD_MODEL_10XXX=y +CONFIG_USE_LARGE_DCACHE=y +CONFIG_NUM_IPI_STARTS=1 +CONFIG_SET_FIDVID_CORE_RANGE=0 +# CONFIG_CPU_AMD_AGESA is not set +CONFIG_S3_DATA_POS=0x0 +CONFIG_S3_DATA_SIZE=32768 +# CONFIG_CPU_AMD_PI is not set +CONFIG_EXT_CONF_SUPPORT=y +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +CONFIG_PARALLEL_CPU_INIT=y +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +CONFIG_UDELAY_LAPIC=y +# CONFIG_LAPIC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +CONFIG_TSC_SYNC_LFENCE=y +# CONFIG_TSC_SYNC_MFENCE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +CONFIG_X86_AMD_FIXED_MTRRS=y +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +CONFIG_MMCONF_BUS_NUMBER=256 +CONFIG_NORTHBRIDGE_AMD_AMDFAM10=y +CONFIG_SB_HT_CHAIN_UNITID_OFFSET_ONLY=y +# CONFIG_HT_CHAIN_DISTRIBUTE is not set +# CONFIG_DIMM_FBDIMM is not set +# CONFIG_DIMM_DDR2 is not set +CONFIG_DIMM_DDR3=y +CONFIG_DIMM_REGISTERED=y +CONFIG_DIMM_VOLTAGE_SET_SUPPORT=y +# CONFIG_SVI_HIGH_FREQ is not set + +# +# HyperTransport setup +# +# CONFIG_LIMIT_HT_DOWN_WIDTH_8 is not set +CONFIG_LIMIT_HT_DOWN_WIDTH_16=y +# CONFIG_LIMIT_HT_UP_WIDTH_8 is not set +CONFIG_LIMIT_HT_UP_WIDTH_16=y +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x14 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_AMD_SB700=y +CONFIG_SOUTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_SOUTHBRIDGE_AMD_SUBTYPE_SP5100=y +# CONFIG_SOUTHBRIDGE_AMD_SB700_SKIP_ISA_DMA_INIT is not set +CONFIG_SOUTHBRIDGE_AMD_SB700_DISABLE_ISA_DMA=y +CONFIG_SOUTHBRIDGE_AMD_SR5650=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set + +# +# Super I/O +# +CONFIG_SUPERIO_WINBOND_COMMON_ROMSTAGE=y +CONFIG_SUPERIO_WINBOND_W83667HG_A=y + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +CONFIG_VERSTAGE_ADDR=0x2000000 +# CONFIG_POSTCAR_STAGE is not set + +# +# Devices +# +# CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT is not set +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +# CONFIG_VGA_ROM_RUN is not set +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +CONFIG_SMBUS_HAS_AUX_CHANNELS=y +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT=y +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +CONFIG_PCIEXP_COMMON_CLOCK=y +CONFIG_PCIEXP_ASPM=y +CONFIG_PCIEXP_CLK_PM=y +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_PCIEXP_L1_SUB_STATE=y +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_ELOG is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +CONFIG_SPI_FLASH=y +CONFIG_SPI_ATOMIC_SEQUENCING=y +CONFIG_SPI_FLASH_MEMORY_MAPPED=y +# CONFIG_SPI_FLASH_NO_FAST_READ is not set +CONFIG_SPI_FLASH_ADESTO=y +CONFIG_SPI_FLASH_AMIC=y +CONFIG_SPI_FLASH_ATMEL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_STMICRO=y +CONFIG_SPI_FLASH_WINBOND=y +# CONFIG_SPI_FLASH_FAST_READ_DUAL_OUTPUT_3B is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_DRIVERS_ASPEED_AST2050=y +CONFIG_DEVICE_SPECIFIC_OPTIONS=y +CONFIG_DRIVERS_ASPEED_AST_COMMON=y +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_I2C_W83795=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +# CONFIG_INTEL_EDID is not set +# CONFIG_INTEL_INT15 is not set +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK=y +CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK=y +CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK=y +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +# CONFIG_HAVE_SMI_HANDLER is not set +CONFIG_PCI_IO_CFG_EXT=y +CONFIG_IOAPIC=y +# CONFIG_USE_WATCHDOG_ON_BOOT is not set +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_HAVE_PIRQ_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="KGPE-D16" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +CONFIG_HAVE_DEBUG_CAR=y +# CONFIG_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +CONFIG_HAVE_DEBUG_SMBUS=y +# CONFIG_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_DEBUG_SPI_FLASH is not set +# CONFIG_TRACE is not set +CONFIG_ENABLE_APIC_EXT_ID=y +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/kgpe-d16/revision b/projects/coreboot/configs/seabios/kgpe-d16/revision new file mode 100644 index 00000000..a4c248f2 --- /dev/null +++ b/projects/coreboot/configs/seabios/kgpe-d16/revision @@ -0,0 +1 @@ +eee0e229764e965996479d7eb07e6086176b8bf0 diff --git a/projects/coreboot/configs/seabios/macbook21/arch b/projects/coreboot/configs/seabios/macbook21/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/macbook21/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/macbook21/config b/projects/coreboot/configs/seabios/macbook21/config new file mode 100644 index 00000000..cdf23a4d --- /dev/null +++ b/projects/coreboot/configs/seabios/macbook21/config @@ -0,0 +1,524 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION=" MB21.88Z.00A5.B07.0706270922" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0x0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +CONFIG_VENDOR_APPLE=y +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="apple/macbook21" +CONFIG_MAINBOARD_PART_NUMBER="MacBook2,1" +CONFIG_MAINBOARD_VENDOR="Apple" +CONFIG_MAX_CPUS=2 +CONFIG_VGA_BIOS_ID="8086,27a2" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +# CONFIG_UDELAY_IO is not set +CONFIG_MAINBOARD_SERIAL_NUMBER="W8724XXXXXX" +CONFIG_DCACHE_RAM_BASE=0xffdf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +# CONFIG_BOARD_APPLE_MACBOOK11 is not set +CONFIG_BOARD_APPLE_MACBOOK21=y +# CONFIG_BOARD_APPLE_MACBOOKAIR4_2 is not set +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Apple Inc." +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x200000 +CONFIG_POST_DEVICE=y +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0 +CONFIG_BOARD_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +CONFIG_COREBOOT_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=2048 +CONFIG_ROM_SIZE=0x200000 +CONFIG_FMDFILE="" +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/i945/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_6EX=y +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_SOCKET_MFCPGA478=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +CONFIG_UDELAY_LAPIC=y +CONFIG_LAPIC_MONOTONIC_TIMER=y +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_I945=y +# CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GC is not set +CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM=y +CONFIG_CHANNEL_XOR_RANDOMIZATION=y +# CONFIG_OVERRIDE_CLOCK_DISABLE is not set +# CONFIG_CHECK_SLFRCS_ON_RESUME is not set +# CONFIG_VRAM_SIZE_1MB is not set +# CONFIG_VRAM_SIZE_4MB is not set +# CONFIG_VRAM_SIZE_8MB is not set +# CONFIG_VRAM_SIZE_16MB is not set +# CONFIG_VRAM_SIZE_32MB is not set +# CONFIG_VRAM_SIZE_48MB is not set +CONFIG_VRAM_SIZE_64MB=y +CONFIG_VRAM_SIZE=0x70 +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y + +# +# Super I/O +# + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +# CONFIG_SIPI_VECTOR_IN_ROM is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="MacBook2,1" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/macbook21/revision b/projects/coreboot/configs/seabios/macbook21/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/macbook21/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/seabios/qemu_i440fx_piix4/arch b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/qemu_i440fx_piix4/config b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/config new file mode 100644 index 00000000..4ce855b1 --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/config @@ -0,0 +1,498 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0x0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +CONFIG_VENDOR_EMULATION=y +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="emulation/qemu-i440fx" +CONFIG_MAINBOARD_PART_NUMBER="QEMU x86 i440fx/piix4" +CONFIG_IRQ_SLOT_COUNT=6 +CONFIG_MAINBOARD_VENDOR="Emulation" +CONFIG_MAX_CPUS=1 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_UDELAY_IO=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xd0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Emulation" +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +# CONFIG_BOARD_EMULATION_QEMU_ARMV7 is not set +CONFIG_BOARD_EMULATION_QEMU_X86_I440FX=y +# CONFIG_BOARD_EMULATION_QEMU_POWER8 is not set +# CONFIG_BOARD_EMULATION_QEMU_X86_Q35 is not set +# CONFIG_BOARD_EMULATION_QEMU_UCB_RISCV is not set +# CONFIG_BOARD_EMULATION_SPIKE_UCB_RISCV is not set +CONFIG_BOARD_EMULATION_QEMU_X86=y +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x800000 +CONFIG_POST_DEVICE=y +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_256=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82371eb/bootblock.c" +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +# CONFIG_SSE2 is not set +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +CONFIG_CPU_QEMU_X86=y +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_UDELAY_LAPIC is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +# CONFIG_TSC_SYNC_MFENCE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +# CONFIG_SUPPORT_CPU_UCODE_IN_CBFS is not set +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON is not set +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82371EB=y + +# +# Super I/O +# + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_HAVE_CMOS_DEFAULT is not set +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS=y +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS_XRES=800 +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS_YRES=600 +# CONFIG_GIC is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +# CONFIG_INTEL_EDID is not set +# CONFIG_INTEL_INT15 is not set +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_HAVE_USBDEBUG is not set +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +# CONFIG_MMCONF_SUPPORT_DEFAULT is not set +# CONFIG_MMCONF_SUPPORT is not set +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_CONSOLE_QEMU_DEBUGCON=y +CONFIG_CONSOLE_QEMU_DEBUGCON_PORT=0x402 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +# CONFIG_HAVE_ACPI_RESUME is not set +# CONFIG_HAVE_HARD_RESET is not set +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +# CONFIG_HAVE_SMI_HANDLER is not set +# CONFIG_PCI_IO_CFG_EXT is not set +# CONFIG_IOAPIC is not set +# CONFIG_USE_WATCHDOG_ON_BOOT is not set +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_PIRQ_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +# CONFIG_GENERATE_MP_TABLE is not set +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="QEMU x86 i440fx/piix4" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +# CONFIG_HAVE_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/qemu_i440fx_piix4/revision b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_i440fx_piix4/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/seabios/qemu_q35_ich9/arch b/projects/coreboot/configs/seabios/qemu_q35_ich9/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_q35_ich9/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/qemu_q35_ich9/config b/projects/coreboot/configs/seabios/qemu_q35_ich9/config new file mode 100644 index 00000000..eaa60108 --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_q35_ich9/config @@ -0,0 +1,500 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0x0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +CONFIG_VENDOR_EMULATION=y +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +# CONFIG_VENDOR_LENOVO is not set +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="emulation/qemu-q35" +CONFIG_MAINBOARD_PART_NUMBER="QEMU x86 q35/ich9" +CONFIG_MAINBOARD_VENDOR="Emulation" +CONFIG_MAX_CPUS=1 +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_UDELAY_IO=y +CONFIG_MAINBOARD_SERIAL_NUMBER="123456789" +CONFIG_DCACHE_RAM_BASE=0xd0000 +CONFIG_DCACHE_RAM_SIZE=0x10000 +CONFIG_MMCONF_BASE_ADDRESS=0xb0000000 +CONFIG_MAINBOARD_SMBIOS_MANUFACTURER="Emulation" +CONFIG_POST_IO=y +CONFIG_BOOTBLOCK_MAINBOARD_INIT="mainboard/emulation/qemu-q35/bootblock.c" +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +# CONFIG_BOARD_EMULATION_QEMU_ARMV7 is not set +# CONFIG_BOARD_EMULATION_QEMU_X86_I440FX is not set +# CONFIG_BOARD_EMULATION_QEMU_POWER8 is not set +CONFIG_BOARD_EMULATION_QEMU_X86_Q35=y +# CONFIG_BOARD_EMULATION_QEMU_UCB_RISCV is not set +# CONFIG_BOARD_EMULATION_SPIKE_UCB_RISCV is not set +CONFIG_BOARD_EMULATION_QEMU_X86=y +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x800000 +CONFIG_POST_DEVICE=y +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +CONFIG_MAINBOARD_VERSION="1.0" +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_256=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_SYSTEM_TYPE_LAPTOP is not set +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +# CONFIG_SSE2 is not set +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +CONFIG_CPU_QEMU_X86=y +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_UDELAY_LAPIC is not set +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +# CONFIG_TSC_SYNC_MFENCE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +# CONFIG_SMM_LAPIC_REMAP_MITIGATION is not set +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +# CONFIG_SUPPORT_CPU_UCODE_IN_CBFS is not set +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# + +# +# Embedded Controllers +# +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_HAVE_CMOS_DEFAULT is not set +CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS=y +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +CONFIG_FRAMEBUFFER_KEEP_VESA_MODE=y + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS=y +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS_XRES=800 +CONFIG_DRIVERS_EMULATION_QEMU_BOCHS_YRES=600 +# CONFIG_GIC is not set +# CONFIG_SMBIOS_PROVIDED_BY_MOBO is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +# CONFIG_INTEL_EDID is not set +# CONFIG_INTEL_INT15 is not set +# CONFIG_INTEL_GMA_ACPI is not set +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_CONSOLE_QEMU_DEBUGCON=y +CONFIG_CONSOLE_QEMU_DEBUGCON_PORT=0x402 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +# CONFIG_HAVE_ACPI_RESUME is not set +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +# CONFIG_HAVE_OPTION_TABLE is not set +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +# CONFIG_GENERATE_MP_TABLE is not set +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y +CONFIG_MAINBOARD_SMBIOS_PRODUCT_NAME="QEMU x86 q35/ich9" + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +# CONFIG_HAVE_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/qemu_q35_ich9/revision b/projects/coreboot/configs/seabios/qemu_q35_ich9/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/qemu_q35_ich9/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/seabios/r400_16mb/arch b/projects/coreboot/configs/seabios/r400_16mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_16mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/r400_16mb/config b/projects/coreboot/configs/seabios/r400_16mb/config new file mode 100644 index 00000000..d0be0b1a --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_16mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad R400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +CONFIG_BOARD_LENOVO_R400=y +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x1000000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/r400_16mb/revision b/projects/coreboot/configs/seabios/r400_16mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_16mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/r400_4mb/arch b/projects/coreboot/configs/seabios/r400_4mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_4mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/r400_4mb/config b/projects/coreboot/configs/seabios/r400_4mb/config new file mode 100644 index 00000000..13ea1c67 --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_4mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad R400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +CONFIG_BOARD_LENOVO_R400=y +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x400000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/r400_4mb/revision b/projects/coreboot/configs/seabios/r400_4mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_4mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/r400_8mb/arch b/projects/coreboot/configs/seabios/r400_8mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_8mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/r400_8mb/config b/projects/coreboot/configs/seabios/r400_8mb/config new file mode 100644 index 00000000..56a22708 --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_8mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad R400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +CONFIG_BOARD_LENOVO_R400=y +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/r400_8mb/revision b/projects/coreboot/configs/seabios/r400_8mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/r400_8mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t400_16mb/arch b/projects/coreboot/configs/seabios/t400_16mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_16mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t400_16mb/config b/projects/coreboot/configs/seabios/t400_16mb/config new file mode 100644 index 00000000..69af9ed1 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_16mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +CONFIG_BOARD_LENOVO_T400=y +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x1000000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t400_16mb/revision b/projects/coreboot/configs/seabios/t400_16mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_16mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t400_4mb/arch b/projects/coreboot/configs/seabios/t400_4mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_4mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t400_4mb/config b/projects/coreboot/configs/seabios/t400_4mb/config new file mode 100644 index 00000000..74287e71 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_4mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +CONFIG_BOARD_LENOVO_T400=y +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x400000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t400_4mb/revision b/projects/coreboot/configs/seabios/t400_4mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_4mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t400_8mb/arch b/projects/coreboot/configs/seabios/t400_8mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_8mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t400_8mb/config b/projects/coreboot/configs/seabios/t400_8mb/config new file mode 100644 index 00000000..76be1d08 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_8mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T400" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +CONFIG_BOARD_LENOVO_T400=y +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t400_8mb/revision b/projects/coreboot/configs/seabios/t400_8mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t400_8mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t500_16mb/arch b/projects/coreboot/configs/seabios/t500_16mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_16mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t500_16mb/config b/projects/coreboot/configs/seabios/t500_16mb/config new file mode 100644 index 00000000..db78f75a --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_16mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x1000000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t500_16mb/revision b/projects/coreboot/configs/seabios/t500_16mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_16mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t500_4mb/arch b/projects/coreboot/configs/seabios/t500_4mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_4mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t500_4mb/config b/projects/coreboot/configs/seabios/t500_4mb/config new file mode 100644 index 00000000..2d9c18c5 --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_4mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x400000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t500_4mb/revision b/projects/coreboot/configs/seabios/t500_4mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_4mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t500_8mb/arch b/projects/coreboot/configs/seabios/t500_8mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_8mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t500_8mb/config b/projects/coreboot/configs/seabios/t500_8mb/config new file mode 100644 index 00000000..d693bc98 --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_8mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/t500_8mb/revision b/projects/coreboot/configs/seabios/t500_8mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/t500_8mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/t60/arch b/projects/coreboot/configs/seabios/t60/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/t60/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/t60/config b/projects/coreboot/configs/seabios/t60/config new file mode 100644 index 00000000..67d83d1f --- /dev/null +++ b/projects/coreboot/configs/seabios/t60/config @@ -0,0 +1,540 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="79ETE7WW (2.27 )" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0x0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t60" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad T60" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_VGA_BIOS_ID="8086,27a2" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +# CONFIG_UDELAY_IO is not set +CONFIG_DCACHE_RAM_BASE=0xffdf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x200000 +CONFIG_POST_DEVICE=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +CONFIG_BOARD_LENOVO_T60=y +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_SEABIOS_PS2_TIMEOUT=3000 +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0 +CONFIG_BOARD_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +CONFIG_COREBOOT_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=2048 +CONFIG_ROM_SIZE=0x200000 +CONFIG_FMDFILE="" +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/i945/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_6EX=y +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_SOCKET_MFCPGA478=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +CONFIG_UDELAY_LAPIC=y +CONFIG_LAPIC_MONOTONIC_TIMER=y +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_I945=y +# CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GC is not set +CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM=y +CONFIG_CHANNEL_XOR_RANDOMIZATION=y +# CONFIG_OVERRIDE_CLOCK_DISABLE is not set +# CONFIG_CHECK_SLFRCS_ON_RESUME is not set +# CONFIG_VRAM_SIZE_1MB is not set +# CONFIG_VRAM_SIZE_4MB is not set +# CONFIG_VRAM_SIZE_8MB is not set +# CONFIG_VRAM_SIZE_16MB is not set +# CONFIG_VRAM_SIZE_32MB is not set +# CONFIG_VRAM_SIZE_48MB is not set +CONFIG_VRAM_SIZE_64MB=y +CONFIG_VRAM_SIZE=0x70 +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y +CONFIG_SOUTHBRIDGE_TI_PCI1X2X=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y +CONFIG_SUPERIO_NSC_PC87384=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_H8_DOCK_EARLY_INIT=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +# CONFIG_SIPI_VECTOR_IN_ROM is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/t60/revision b/projects/coreboot/configs/seabios/t60/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/t60/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/seabios/targets b/projects/coreboot/configs/seabios/targets new file mode 100644 index 00000000..3e1041b1 --- /dev/null +++ b/projects/coreboot/configs/seabios/targets @@ -0,0 +1,26 @@ +d510mo +d945gclf +ga-g41m-es2l +kcma-d8 +kfsn4-dre +kgpe-d16 +macbook21 +qemu_i440fx_piix4 +qemu_q35_ich9 +r400_16mb +r400_4mb +r400_8mb +t400_16mb +t400_4mb +t400_8mb +t500_16mb +t500_4mb +t500_8mb +t60 +w500_16mb +w500_4mb +w500_8mb +x200_16mb +x200_4mb +x200_8mb +x60 diff --git a/projects/coreboot/configs/seabios/w500_16mb/arch b/projects/coreboot/configs/seabios/w500_16mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_16mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/w500_16mb/config b/projects/coreboot/configs/seabios/w500_16mb/config new file mode 100644 index 00000000..bbc29cba --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_16mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad W500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x1000000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/w500_16mb/revision b/projects/coreboot/configs/seabios/w500_16mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_16mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/w500_4mb/arch b/projects/coreboot/configs/seabios/w500_4mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_4mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/w500_4mb/config b/projects/coreboot/configs/seabios/w500_4mb/config new file mode 100644 index 00000000..d49c420d --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_4mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad W500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x400000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/w500_4mb/revision b/projects/coreboot/configs/seabios/w500_4mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_4mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/w500_8mb/arch b/projects/coreboot/configs/seabios/w500_8mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_8mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/w500_8mb/config b/projects/coreboot/configs/seabios/w500_8mb/config new file mode 100644 index 00000000..a03171ac --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_8mb/config @@ -0,0 +1,550 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/t400" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad W500" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +CONFIG_BOARD_LENOVO_T500=y +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +# CONFIG_DRIVERS_LENOVO_WACOM is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/w500_8mb/revision b/projects/coreboot/configs/seabios/w500_8mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/w500_8mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/x200_16mb/arch b/projects/coreboot/configs/seabios/x200_16mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_16mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/x200_16mb/config b/projects/coreboot/configs/seabios/x200_16mb/config new file mode 100644 index 00000000..02cc1c72 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_16mb/config @@ -0,0 +1,545 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/x200" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X200" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0xFFD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +# CONFIG_DRIVERS_UART_8250IO is not set +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +CONFIG_BOARD_LENOVO_X200=y +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +CONFIG_COREBOOT_ROMSIZE_KB_16384=y +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=16384 +CONFIG_ROM_SIZE=0x1000000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set +# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/x200_16mb/revision b/projects/coreboot/configs/seabios/x200_16mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_16mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/x200_4mb/arch b/projects/coreboot/configs/seabios/x200_4mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_4mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/x200_4mb/config b/projects/coreboot/configs/seabios/x200_4mb/config new file mode 100644 index 00000000..22573e85 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_4mb/config @@ -0,0 +1,545 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/x200" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X200" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x3FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +# CONFIG_DRIVERS_UART_8250IO is not set +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +CONFIG_BOARD_LENOVO_X200=y +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +CONFIG_COREBOOT_ROMSIZE_KB_4096=y +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=4096 +CONFIG_ROM_SIZE=0x400000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set +# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/x200_4mb/revision b/projects/coreboot/configs/seabios/x200_4mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_4mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/x200_8mb/arch b/projects/coreboot/configs/seabios/x200_8mb/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_8mb/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/x200_8mb/config b/projects/coreboot/configs/seabios/x200_8mb/config new file mode 100644 index 00000000..2ef9b6e0 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_8mb/config @@ -0,0 +1,545 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +CONFIG_INCLUDE_CONFIG_FILE=y +# CONFIG_NO_XIP_EARLY_STAGES is not set +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +# CONFIG_NO_STAGE_CACHE is not set +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADI is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/x200" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X200" +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x7FD000 +CONFIG_VGA_BIOS_ID="8086,2a42" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +CONFIG_DCACHE_RAM_BASE=0xffaf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_POST_DEVICE=y +CONFIG_USBDEBUG_HCD_INDEX=2 +# CONFIG_CONSOLE_POST is not set +# CONFIG_DRIVERS_UART_8250IO is not set +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +CONFIG_BOARD_LENOVO_X200=y +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +# CONFIG_BOARD_LENOVO_X60 is not set +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +# CONFIG_NO_POST is not set +CONFIG_BOARD_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_2048 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +CONFIG_COREBOOT_ROMSIZE_KB_8192=y +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_32768 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_65536 is not set +CONFIG_COREBOOT_ROMSIZE_KB=8192 +CONFIG_ROM_SIZE=0x800000 +CONFIG_FMDFILE="" +# CONFIG_MAINBOARD_HAS_TPM2 is not set +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/gm45/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801ix/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_RAMTOP=0x200000 +CONFIG_HEAP_SIZE=0x4000 +CONFIG_CONSOLE_CBMEM=y +CONFIG_UART_PCI_ADDR=0x0 +CONFIG_HPET_MIN_TICKS=0x80 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ40XX is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_SOC_ROCKCHIP_RK3399 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_1067X=y +CONFIG_CPU_INTEL_SOCKET_BGA956=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_UDELAY_IO is not set +# CONFIG_UDELAY_LAPIC is not set +CONFIG_UDELAY_TSC=y +# CONFIG_TSC_CONSTANT_RATE is not set +# CONFIG_TSC_MONOTONIC_TIMER is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +# CONFIG_NO_FIXED_XIP_ROM_SIZE is not set +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +# CONFIG_NORTHBRIDGE_INTEL_COMMON_MRC_CACHE is not set +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_GM45=y +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO=y +CONFIG_SOUTHBRIDGE_INTEL_I82801IX=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_USE_SIEMENS_HWILIB is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +# CONFIG_AP_IN_SIPI_WAIT is not set +# CONFIG_SIPI_VECTOR_IN_ROM is not set +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +# CONFIG_BOOTBLOCK_DEBUG_SPINLOOP is not set +# CONFIG_BOOTBLOCK_SAVE_BIST_AND_TIMESTAMP is not set +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_POSTCAR_STAGE is not set +# CONFIG_VERSTAGE_DEBUG_SPINLOOP is not set +# CONFIG_ROMSTAGE_DEBUG_SPINLOOP is not set + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +# CONFIG_IPMI_KCS is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set +# CONFIG_DRIVERS_LENOVO_HYBRID_GRAPHICS is not set +# CONFIG_REALTEK_8168_RESET is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVERS_UART is not set +CONFIG_NO_UART_ON_SUPERIO=y +# CONFIG_UART_OVERRIDE_INPUT_CLOCK_DIVIDER is not set +# CONFIG_UART_OVERRIDE_REFCLK is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +# CONFIG_UART_USE_REFCLK_AS_INPUT_CLOCK is not set +CONFIG_HAVE_USBDEBUG=y +CONFIG_HAVE_USBDEBUG_OPTIONS=y +CONFIG_DRIVERS_GENERIC_IOAPIC=y +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_PCF8523 is not set +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +# CONFIG_DRIVER_PARADE_PS8640 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVER_SIEMENS_NC_FPGA is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +# CONFIG_ACPI_SATA_GENERATOR is not set +# CONFIG_ACPI_INTEL_HARDWARE_SLEEP_VALUES is not set +# CONFIG_RTC is not set +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +# CONFIG_HAVE_MONOTONIC_TIMER is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +# CONFIG_COMMON_FADT is not set +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +# CONFIG_GENERATE_PIRQ_TABLE is not set +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +# CONFIG_PXE is not set +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set + +# +# Secondary Payloads +# +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set +# CONFIG_NVRAMCUI_SECONDARY_PAYLOAD is not set +# CONFIG_TINT_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_DEBUG_BOOT_STATE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_CREATE_BOARD_CHECKLIST is not set +# CONFIG_MAKE_CHECKLIST_PUBLIC is not set diff --git a/projects/coreboot/configs/seabios/x200_8mb/revision b/projects/coreboot/configs/seabios/x200_8mb/revision new file mode 100644 index 00000000..d4e47be8 --- /dev/null +++ b/projects/coreboot/configs/seabios/x200_8mb/revision @@ -0,0 +1 @@ +d83b0e9ac4174cca92ac2c3b83a7e8491a9a1ff4 diff --git a/projects/coreboot/configs/seabios/x60/arch b/projects/coreboot/configs/seabios/x60/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/coreboot/configs/seabios/x60/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/coreboot/configs/seabios/x60/config b/projects/coreboot/configs/seabios/x60/config new file mode 100644 index 00000000..f73cd211 --- /dev/null +++ b/projects/coreboot/configs/seabios/x60/config @@ -0,0 +1,546 @@ +# +# Automatically generated file; DO NOT EDIT. +# coreboot configuration +# + +# +# General setup +# +CONFIG_LOCALVERSION="" +CONFIG_CBFS_PREFIX="fallback" +# CONFIG_MULTIPLE_CBFS_INSTANCES is not set +CONFIG_COMPILER_GCC=y +# CONFIG_COMPILER_LLVM_CLANG is not set +# CONFIG_ANY_TOOLCHAIN is not set +# CONFIG_CCACHE is not set +# CONFIG_FMD_GENPARSER is not set +# CONFIG_SCONFIG_GENPARSER is not set +CONFIG_USE_OPTION_TABLE=y +CONFIG_STATIC_OPTION_TABLE=y +# CONFIG_UNCOMPRESSED_RAMSTAGE is not set +CONFIG_COMPRESS_RAMSTAGE=y +# CONFIG_COMPRESS_PRERAM_STAGES is not set +CONFIG_INCLUDE_CONFIG_FILE=y +CONFIG_EARLY_CBMEM_INIT=y +# CONFIG_COLLECT_TIMESTAMPS is not set +# CONFIG_USE_BLOBS is not set +# CONFIG_COVERAGE is not set +# CONFIG_RELOCATABLE_MODULES is not set +# CONFIG_RELOCATABLE_RAMSTAGE is not set +CONFIG_FLASHMAP_OFFSET=0x0 +CONFIG_BOOTBLOCK_SIMPLE=y +# CONFIG_BOOTBLOCK_NORMAL is not set +CONFIG_BOOTBLOCK_CUSTOM=y +CONFIG_BOOTBLOCK_SOURCE="bootblock_simple.c" +# CONFIG_C_ENVIRONMENT_BOOTBLOCK is not set +# CONFIG_UPDATE_IMAGE is not set +# CONFIG_GENERIC_GPIO_LIB is not set +# CONFIG_BOARD_ID_AUTO is not set +# CONFIG_BOARD_ID_MANUAL is not set +# CONFIG_RAM_CODE_SUPPORT is not set +# CONFIG_BOOTSPLASH_IMAGE is not set +# CONFIG_ACPI_SATA_GENERATOR is not set + +# +# Mainboard +# +# CONFIG_VENDOR_A_TREND is not set +# CONFIG_VENDOR_AAEON is not set +# CONFIG_VENDOR_ABIT is not set +# CONFIG_VENDOR_ADLINK is not set +# CONFIG_VENDOR_ADVANSUS is not set +# CONFIG_VENDOR_AMD is not set +# CONFIG_VENDOR_AOPEN is not set +# CONFIG_VENDOR_APPLE is not set +# CONFIG_VENDOR_ARTECGROUP is not set +# CONFIG_VENDOR_ASROCK is not set +# CONFIG_VENDOR_ASUS is not set +# CONFIG_VENDOR_AVALUE is not set +# CONFIG_VENDOR_AZZA is not set +# CONFIG_VENDOR_BACHMANN is not set +# CONFIG_VENDOR_BAP is not set +# CONFIG_VENDOR_BCOM is not set +# CONFIG_VENDOR_BIFFEROS is not set +# CONFIG_VENDOR_BIOSTAR is not set +# CONFIG_VENDOR_BROADCOM is not set +# CONFIG_VENDOR_COMPAQ is not set +# CONFIG_VENDOR_CUBIETECH is not set +# CONFIG_VENDOR_DIGITALLOGIC is not set +# CONFIG_VENDOR_DMP is not set +# CONFIG_VENDOR_ECS is not set +# CONFIG_VENDOR_EMULATION is not set +# CONFIG_VENDOR_ESD is not set +# CONFIG_VENDOR_GETAC is not set +# CONFIG_VENDOR_GIGABYTE is not set +# CONFIG_VENDOR_GIZMOSPHERE is not set +# CONFIG_VENDOR_GOOGLE is not set +# CONFIG_VENDOR_HP is not set +# CONFIG_VENDOR_IBASE is not set +# CONFIG_VENDOR_IEI is not set +# CONFIG_VENDOR_INTEL is not set +# CONFIG_VENDOR_IWAVE is not set +# CONFIG_VENDOR_IWILL is not set +# CONFIG_VENDOR_JETWAY is not set +# CONFIG_VENDOR_KONTRON is not set +# CONFIG_VENDOR_LANNER is not set +CONFIG_VENDOR_LENOVO=y +# CONFIG_VENDOR_LINUTOP is not set +# CONFIG_VENDOR_LIPPERT is not set +# CONFIG_VENDOR_MITAC is not set +# CONFIG_VENDOR_MSI is not set +# CONFIG_VENDOR_NEC is not set +# CONFIG_VENDOR_NOKIA is not set +# CONFIG_VENDOR_NVIDIA is not set +# CONFIG_VENDOR_PACKARDBELL is not set +# CONFIG_VENDOR_PCENGINES is not set +# CONFIG_VENDOR_PURISM is not set +# CONFIG_VENDOR_RCA is not set +# CONFIG_VENDOR_RODA is not set +# CONFIG_VENDOR_SAMSUNG is not set +# CONFIG_VENDOR_SIEMENS is not set +# CONFIG_VENDOR_SOYO is not set +# CONFIG_VENDOR_SUNW is not set +# CONFIG_VENDOR_SUPERMICRO is not set +# CONFIG_VENDOR_TECHNEXION is not set +# CONFIG_VENDOR_THOMSON is not set +# CONFIG_VENDOR_TI is not set +# CONFIG_VENDOR_TRAVERSE is not set +# CONFIG_VENDOR_TYAN is not set +# CONFIG_VENDOR_VIA is not set +# CONFIG_VENDOR_WINENT is not set +# CONFIG_VENDOR_WYSE is not set +CONFIG_BOARD_SPECIFIC_OPTIONS=y +CONFIG_MAINBOARD_DIR="lenovo/x60" +CONFIG_MAINBOARD_PART_NUMBER="ThinkPad X60" +CONFIG_IRQ_SLOT_COUNT=18 +CONFIG_MAINBOARD_VENDOR="LENOVO" +CONFIG_MAX_CPUS=2 +CONFIG_VGA_BIOS_ID="8086,27a2" +# CONFIG_ONBOARD_VGA_IS_PRIMARY is not set +# CONFIG_VGA_BIOS is not set +# CONFIG_UDELAY_IO is not set +CONFIG_DCACHE_RAM_BASE=0xffdf8000 +CONFIG_DCACHE_RAM_SIZE=0x8000 +CONFIG_MMCONF_BASE_ADDRESS=0xf0000000 +CONFIG_POST_IO=y +CONFIG_MAX_REBOOT_CNT=3 +CONFIG_MAINBOARD_DO_NATIVE_VGA_INIT=y +CONFIG_ID_SECTION_OFFSET=0x80 +CONFIG_RAMTOP=0x200000 +CONFIG_CACHE_ROM_SIZE_OVERRIDE=0 +CONFIG_CBFS_SIZE=0x200000 +CONFIG_POST_DEVICE=y +# CONFIG_BOARD_LENOVO_G505S is not set +# CONFIG_BOARD_LENOVO_R400 is not set +# CONFIG_BOARD_LENOVO_T400 is not set +# CONFIG_BOARD_LENOVO_T420S is not set +# CONFIG_BOARD_LENOVO_T430S is not set +# CONFIG_BOARD_LENOVO_T500 is not set +# CONFIG_BOARD_LENOVO_T520 is not set +# CONFIG_BOARD_LENOVO_T530 is not set +# CONFIG_BOARD_LENOVO_T60 is not set +# CONFIG_BOARD_LENOVO_X200 is not set +# CONFIG_BOARD_LENOVO_X201 is not set +# CONFIG_BOARD_LENOVO_X220 is not set +# CONFIG_BOARD_LENOVO_X220I is not set +# CONFIG_BOARD_LENOVO_X230 is not set +CONFIG_BOARD_LENOVO_X60=y +CONFIG_SEABIOS_PS2_TIMEOUT=3000 +CONFIG_CPU_ADDR_BITS=36 +CONFIG_DEFAULT_CONSOLE_LOGLEVEL=8 +# CONFIG_USBDEBUG is not set +# CONFIG_DRIVERS_PS2_KEYBOARD is not set +CONFIG_DRIVERS_UART_8250IO=y +# CONFIG_NO_POST is not set +CONFIG_MAXIMUM_SUPPORTED_FREQUENCY=0 +CONFIG_BOARD_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_64 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_128 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_256 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_512 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_1024 is not set +CONFIG_COREBOOT_ROMSIZE_KB_2048=y +# CONFIG_COREBOOT_ROMSIZE_KB_4096 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_8192 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_12288 is not set +# CONFIG_COREBOOT_ROMSIZE_KB_16384 is not set +CONFIG_COREBOOT_ROMSIZE_KB=2048 +CONFIG_ROM_SIZE=0x200000 +CONFIG_FMDFILE="" +CONFIG_SYSTEM_TYPE_LAPTOP=y +# CONFIG_CBFS_AUTOGEN_ATTRIBUTES is not set + +# +# Chipset +# + +# +# SoC +# +# CONFIG_SOC_BROADCOM_CYGNUS is not set +CONFIG_C_ENV_BOOTBLOCK_SIZE=0x10000 +CONFIG_BOOTBLOCK_NORTHBRIDGE_INIT="northbridge/intel/i945/bootblock.c" +CONFIG_BOOTBLOCK_SOUTHBRIDGE_INIT="southbridge/intel/i82801gx/bootblock.c" +CONFIG_EHCI_BAR=0xfef00000 +CONFIG_HEAP_SIZE=0x4000 +# CONFIG_SOC_MARVELL_ARMADA38X is not set +# CONFIG_SOC_MARVELL_BG4CD is not set +# CONFIG_SOC_MEDIATEK_MT8173 is not set +# CONFIG_SOC_NVIDIA_TEGRA124 is not set +# CONFIG_SOC_NVIDIA_TEGRA132 is not set +# CONFIG_SOC_NVIDIA_TEGRA210 is not set +# CONFIG_SOC_QC_IPQ806X is not set +# CONFIG_SOC_ROCKCHIP_RK3288 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5250 is not set +# CONFIG_CPU_SAMSUNG_EXYNOS5420 is not set +# CONFIG_SOC_UCB_RISCV is not set + +# +# CPU +# +# CONFIG_CPU_ALLWINNER_A10 is not set +CONFIG_SOCKET_SPECIFIC_OPTIONS=y +CONFIG_XIP_ROM_SIZE=0x10000 +CONFIG_NUM_IPI_STARTS=2 +# CONFIG_CPU_AMD_AGESA is not set +# CONFIG_CPU_AMD_PI is not set +# CONFIG_CPU_ARMLTD_CORTEX_A9 is not set +CONFIG_CPU_INTEL_MODEL_6EX=y +CONFIG_CPU_INTEL_MODEL_6FX=y +CONFIG_CPU_INTEL_SOCKET_MFCPGA478=y +CONFIG_SSE2=y +# CONFIG_CPU_INTEL_FIRMWARE_INTERFACE_TABLE is not set +# CONFIG_CPU_INTEL_TURBO_NOT_PACKAGE_SCOPED is not set +# CONFIG_CPU_TI_AM335X is not set +# CONFIG_PARALLEL_CPU_INIT is not set +CONFIG_UDELAY_LAPIC=y +CONFIG_LAPIC_MONOTONIC_TIMER=y +# CONFIG_UDELAY_TSC is not set +# CONFIG_UDELAY_TIMER2 is not set +# CONFIG_TSC_CALIBRATE_WITH_IO is not set +# CONFIG_TSC_SYNC_LFENCE is not set +CONFIG_TSC_SYNC_MFENCE=y +CONFIG_LOGICAL_CPUS=y +# CONFIG_SMM_TSEG is not set +CONFIG_SMM_LAPIC_REMAP_MITIGATION=y +# CONFIG_SERIALIZED_SMM_INITIALIZATION is not set +# CONFIG_X86_AMD_FIXED_MTRRS is not set +# CONFIG_PLATFORM_USES_FSP1_0 is not set +# CONFIG_PARALLEL_MP is not set +# CONFIG_BACKUP_DEFAULT_SMM_REGION is not set +# CONFIG_MIRROR_PAYLOAD_TO_RAM_BEFORE_LOADING is not set +CONFIG_CACHE_AS_RAM=y +CONFIG_SMP=y +CONFIG_AP_SIPI_VECTOR=0xfffff000 +CONFIG_MMX=y +CONFIG_SSE=y +CONFIG_SUPPORT_CPU_UCODE_IN_CBFS=y +# CONFIG_USES_MICROCODE_HEADER_FILES is not set +# CONFIG_CPU_MICROCODE_CBFS_GENERATE is not set +# CONFIG_CPU_MICROCODE_CBFS_EXTERNAL_HEADER is not set +CONFIG_CPU_MICROCODE_CBFS_NONE=y + +# +# Northbridge +# +# CONFIG_NORTHBRIDGE_AMD_AGESA is not set +# CONFIG_AMD_NB_CIMX is not set +# CONFIG_NORTHBRIDGE_AMD_CIMX_RD890 is not set +CONFIG_VIDEO_MB=0 +# CONFIG_NORTHBRIDGE_AMD_PI is not set +CONFIG_RAMBASE=0x100000 +CONFIG_NORTHBRIDGE_SPECIFIC_OPTIONS=y +CONFIG_NORTHBRIDGE_INTEL_I945=y +# CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GC is not set +CONFIG_NORTHBRIDGE_INTEL_SUBTYPE_I945GM=y +CONFIG_CHANNEL_XOR_RANDOMIZATION=y +# CONFIG_OVERRIDE_CLOCK_DISABLE is not set +# CONFIG_CHECK_SLFRCS_ON_RESUME is not set +# CONFIG_VRAM_SIZE_1MB is not set +# CONFIG_VRAM_SIZE_4MB is not set +# CONFIG_VRAM_SIZE_8MB is not set +# CONFIG_VRAM_SIZE_16MB is not set +# CONFIG_VRAM_SIZE_32MB is not set +# CONFIG_VRAM_SIZE_48MB is not set +CONFIG_VRAM_SIZE_64MB=y +CONFIG_VRAM_SIZE=0x70 +CONFIG_HPET_ADDRESS=0xfed00000 +CONFIG_HPET_MIN_TICKS=0x80 +CONFIG_MAX_PIRQ_LINKS=4 + +# +# Southbridge +# +# CONFIG_AMD_SB_CIMX is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB800 is not set +# CONFIG_SOUTHBRIDGE_AMD_CIMX_SB900 is not set +CONFIG_SOUTHBRIDGE_INTEL_COMMON=y +# CONFIG_SOUTHBRIDGE_INTEL_COMMON_GPIO is not set +CONFIG_SOUTHBRIDGE_INTEL_I82801GX=y +CONFIG_SOUTHBRIDGE_RICOH_RL5C476=y + +# +# Super I/O +# +CONFIG_SUPERIO_NSC_PC87382=y +CONFIG_SUPERIO_NSC_PC87392=y + +# +# Embedded Controllers +# +CONFIG_EC_ACPI=y +CONFIG_EC_LENOVO_H8=y +CONFIG_H8_DOCK_EARLY_INIT=y +CONFIG_EC_LENOVO_PMH7=y +# CONFIG_MAINBOARD_HAS_CHROMEOS is not set +# CONFIG_UEFI_2_4_BINDING is not set +# CONFIG_ARCH_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARM is not set +# CONFIG_ARCH_VERSTAGE_ARM is not set +# CONFIG_ARCH_ROMSTAGE_ARM is not set +# CONFIG_ARCH_RAMSTAGE_ARM is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV4 is not set +# CONFIG_ARCH_VERSTAGE_ARMV4 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV4 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV4 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7 is not set +# CONFIG_ARCH_VERSTAGE_ARMV7 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV7 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV7 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV7_M is not set +# CONFIG_ARCH_VERSTAGE_ARMV7_M is not set +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARM64 is not set +# CONFIG_ARCH_VERSTAGE_ARM64 is not set +# CONFIG_ARCH_ROMSTAGE_ARM64 is not set +# CONFIG_ARCH_RAMSTAGE_ARM64 is not set +# CONFIG_ARCH_BOOTBLOCK_ARMV8_64 is not set +# CONFIG_ARCH_VERSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_ROMSTAGE_ARMV8_64 is not set +# CONFIG_ARCH_RAMSTAGE_ARMV8_64 is not set +# CONFIG_ARM64_A53_ERRATUM_843419 is not set +# CONFIG_ARCH_MIPS is not set +# CONFIG_ARCH_BOOTBLOCK_MIPS is not set +# CONFIG_ARCH_VERSTAGE_MIPS is not set +# CONFIG_ARCH_ROMSTAGE_MIPS is not set +# CONFIG_ARCH_RAMSTAGE_MIPS is not set +# CONFIG_ARCH_POWER8 is not set +# CONFIG_ARCH_BOOTBLOCK_POWER8 is not set +# CONFIG_ARCH_VERSTAGE_POWER8 is not set +# CONFIG_ARCH_ROMSTAGE_POWER8 is not set +# CONFIG_ARCH_RAMSTAGE_POWER8 is not set +# CONFIG_ARCH_RISCV is not set +# CONFIG_ARCH_BOOTBLOCK_RISCV is not set +# CONFIG_ARCH_VERSTAGE_RISCV is not set +# CONFIG_ARCH_ROMSTAGE_RISCV is not set +# CONFIG_ARCH_RAMSTAGE_RISCV is not set +CONFIG_ARCH_X86=y +CONFIG_ARCH_BOOTBLOCK_X86_32=y +CONFIG_ARCH_VERSTAGE_X86_32=y +CONFIG_ARCH_ROMSTAGE_X86_32=y +CONFIG_ARCH_RAMSTAGE_X86_32=y +# CONFIG_ARCH_BOOTBLOCK_X86_64 is not set +# CONFIG_ARCH_VERSTAGE_X86_64 is not set +# CONFIG_ARCH_ROMSTAGE_X86_64 is not set +# CONFIG_ARCH_RAMSTAGE_X86_64 is not set +# CONFIG_USE_MARCH_586 is not set +CONFIG_AP_IN_SIPI_WAIT=y +# CONFIG_SIPI_VECTOR_IN_ROM is not set +CONFIG_X86_TOP4G_BOOTMEDIA_MAP=y +# CONFIG_ROMCC is not set +# CONFIG_LATE_CBMEM_INIT is not set +CONFIG_PC80_SYSTEM=y +CONFIG_HAVE_CMOS_DEFAULT=y +CONFIG_CMOS_DEFAULT_FILE="src/mainboard/$(MAINBOARDDIR)/cmos.default" +CONFIG_IOAPIC_INTERRUPTS_ON_FSB=y +# CONFIG_IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS is not set +# CONFIG_COMPILE_IN_DSDT is not set +CONFIG_ROMSTAGE_ADDR=0x2000000 +CONFIG_VERSTAGE_ADDR=0x2000000 + +# +# Devices +# +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT=y +CONFIG_NATIVE_VGA_INIT_USE_EDID=y +CONFIG_MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG=y +CONFIG_ON_DEVICE_ROM_LOAD=y +# CONFIG_MULTIPLE_VGA_ADAPTERS is not set +# CONFIG_SMBUS_HAS_AUX_CHANNELS is not set +# CONFIG_SPD_CACHE is not set +CONFIG_PCI=y +# CONFIG_HYPERTRANSPORT_PLUGIN_SUPPORT is not set +CONFIG_PCIX_PLUGIN_SUPPORT=y +CONFIG_PCIEXP_PLUGIN_SUPPORT=y +CONFIG_CARDBUS_PLUGIN_SUPPORT=y +# CONFIG_AZALIA_PLUGIN_SUPPORT is not set +# CONFIG_PCIEXP_COMMON_CLOCK is not set +# CONFIG_PCIEXP_ASPM is not set +# CONFIG_PCIEXP_CLK_PM is not set +# CONFIG_EARLY_PCI_BRIDGE is not set +# CONFIG_PCIEXP_L1_SUB_STATE is not set +CONFIG_SUBSYSTEM_VENDOR_ID=0x0000 +CONFIG_SUBSYSTEM_DEVICE_ID=0x0000 +# CONFIG_PXE_ROM is not set +# CONFIG_SOFTWARE_I2C is not set + +# +# Display +# +# CONFIG_FRAMEBUFFER_KEEP_VESA_MODE is not set + +# +# Generic Drivers +# +# CONFIG_DRIVERS_AS3722_RTC is not set +# CONFIG_GIC is not set +CONFIG_SMBIOS_PROVIDED_BY_MOBO=y +# CONFIG_DRIVERS_I2C_RTD2132 is not set +CONFIG_DRIVERS_ICS_954309=y +# CONFIG_INTEL_DP is not set +# CONFIG_INTEL_DDI is not set +CONFIG_INTEL_EDID=y +CONFIG_INTEL_INT15=y +CONFIG_INTEL_GMA_ACPI=y +# CONFIG_DRIVER_INTEL_I210 is not set +# CONFIG_IPMI_KCS is not set +CONFIG_DRIVERS_LENOVO_WACOM=y +# CONFIG_DIGITIZER_AUTODETECT is not set +CONFIG_DIGITIZER_PRESENT=y +# CONFIG_DIGITIZER_ABSENT is not set +# CONFIG_DRIVER_MAXIM_MAX77686 is not set +# CONFIG_DRIVER_PARADE_PS8625 is not set +CONFIG_DRIVERS_MC146818=y +# CONFIG_MAINBOARD_HAS_LPC_TPM is not set +# CONFIG_DRIVERS_RICOH_RCE822 is not set +# CONFIG_DRIVERS_SIL_3114 is not set +# CONFIG_SPI_FLASH is not set +# CONFIG_HAVE_SPI_CONSOLE_SUPPORT is not set +# CONFIG_DRIVER_TI_TPS65090 is not set +# CONFIG_DRIVERS_TI_TPS65913 is not set +# CONFIG_DRIVERS_TI_TPS65913_RTC is not set +# CONFIG_DRIVERS_UART is not set +# CONFIG_NO_UART_ON_SUPERIO is not set +# CONFIG_DRIVERS_UART_8250MEM is not set +# CONFIG_DRIVERS_UART_8250MEM_32 is not set +# CONFIG_HAVE_UART_SPECIAL is not set +# CONFIG_DRIVERS_UART_OXPCIE is not set +# CONFIG_DRIVERS_UART_PL011 is not set +CONFIG_HAVE_USBDEBUG=y +# CONFIG_HAVE_USBDEBUG_OPTIONS is not set +# CONFIG_DRIVER_XPOWERS_AXP209 is not set +CONFIG_RTC=y +# CONFIG_TPM is not set +CONFIG_STACK_SIZE=0x1000 +CONFIG_MMCONF_SUPPORT_DEFAULT=y +CONFIG_MMCONF_SUPPORT=y +# CONFIG_BOOTMODE_STRAPS is not set + +# +# Console +# +CONFIG_SQUELCH_EARLY_SMP=y +# CONFIG_CONSOLE_SERIAL is not set +# CONFIG_CONSOLE_SERIAL_921600 is not set +# CONFIG_CONSOLE_SERIAL_460800 is not set +# CONFIG_CONSOLE_SERIAL_230400 is not set +# CONFIG_CONSOLE_SERIAL_115200 is not set +# CONFIG_CONSOLE_SERIAL_57600 is not set +# CONFIG_CONSOLE_SERIAL_38400 is not set +# CONFIG_CONSOLE_SERIAL_19200 is not set +# CONFIG_CONSOLE_SERIAL_9600 is not set +# CONFIG_SPKMODEM is not set +# CONFIG_CONSOLE_NE2K is not set +CONFIG_CONSOLE_CBMEM=y +CONFIG_CONSOLE_CBMEM_BUFFER_SIZE=0x20000 +# CONFIG_CONSOLE_CBMEM_DUMP_TO_UART is not set +CONFIG_DEFAULT_CONSOLE_LOGLEVEL_8=y +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_7 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_6 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_5 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_4 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_3 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_2 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_1 is not set +# CONFIG_DEFAULT_CONSOLE_LOGLEVEL_0 is not set +# CONFIG_CMOS_POST is not set +# CONFIG_CONSOLE_POST is not set +CONFIG_POST_DEVICE_NONE=y +# CONFIG_POST_DEVICE_LPC is not set +# CONFIG_POST_DEVICE_PCI_PCIE is not set +CONFIG_POST_IO_PORT=0x80 +# CONFIG_NO_EARLY_BOOTBLOCK_POSTCODES is not set +CONFIG_HAVE_ACPI_RESUME=y +CONFIG_RESUME_PATH_SAME_AS_BOOT=y +CONFIG_HAVE_HARD_RESET=y +# CONFIG_HAVE_ROMSTAGE_CONSOLE_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_NVRAM_CBFS_SPINLOCK is not set +# CONFIG_HAVE_ROMSTAGE_MICROCODE_CBFS_SPINLOCK is not set +CONFIG_HAVE_MONOTONIC_TIMER=y +# CONFIG_GENERIC_UDELAY is not set +# CONFIG_TIMER_QUEUE is not set +CONFIG_HAVE_OPTION_TABLE=y +# CONFIG_PIRQ_ROUTE is not set +CONFIG_HAVE_SMI_HANDLER=y +# CONFIG_PCI_IO_CFG_EXT is not set +CONFIG_IOAPIC=y +CONFIG_USE_WATCHDOG_ON_BOOT=y +CONFIG_VGA=y +# CONFIG_GFXUMA is not set +CONFIG_HAVE_ACPI_TABLES=y +CONFIG_HAVE_MP_TABLE=y +CONFIG_HAVE_PIRQ_TABLE=y +CONFIG_COMMON_FADT=y +# CONFIG_ACPI_NHLT is not set + +# +# System tables +# +CONFIG_GENERATE_MP_TABLE=y +CONFIG_GENERATE_PIRQ_TABLE=y +CONFIG_GENERATE_SMBIOS_TABLES=y + +# +# Payload +# +# CONFIG_PAYLOAD_NONE is not set +CONFIG_PAYLOAD_ELF=y +# CONFIG_PAYLOAD_FILO is not set +# CONFIG_PAYLOAD_GRUB2 is not set +# CONFIG_PAYLOAD_SEABIOS is not set +# CONFIG_PAYLOAD_UBOOT is not set +# CONFIG_PAYLOAD_LINUX is not set +# CONFIG_PAYLOAD_TIANOCORE is not set +CONFIG_PAYLOAD_FILE="$(obj)/../seabios-bios/bios.bin.elf" +CONFIG_PAYLOAD_OPTIONS="" +CONFIG_COMPRESSED_PAYLOAD_LZMA=y +# CONFIG_PAYLOAD_IS_FLAT_BINARY is not set +# CONFIG_COREINFO_SECONDARY_PAYLOAD is not set +# CONFIG_MEMTEST_SECONDARY_PAYLOAD is not set + +# +# Debugging +# +# CONFIG_FATAL_ASSERTS is not set +# CONFIG_DEBUG_CBFS is not set +CONFIG_HAVE_DEBUG_RAM_SETUP=y +# CONFIG_DEBUG_RAM_SETUP is not set +# CONFIG_HAVE_DEBUG_CAR is not set +# CONFIG_DEBUG_PIRQ is not set +# CONFIG_HAVE_DEBUG_SMBUS is not set +# CONFIG_DEBUG_SMI is not set +# CONFIG_DEBUG_SMM_RELOCATION is not set +# CONFIG_DEBUG_MALLOC is not set +# CONFIG_DEBUG_ACPI is not set +# CONFIG_TRACE is not set +# CONFIG_ENABLE_APIC_EXT_ID is not set +CONFIG_WARNINGS_ARE_ERRORS=y +CONFIG_IASL_WARNINGS_ARE_ERRORS=y +# CONFIG_POWER_BUTTON_DEFAULT_ENABLE is not set +# CONFIG_POWER_BUTTON_DEFAULT_DISABLE is not set +# CONFIG_POWER_BUTTON_FORCE_ENABLE is not set +# CONFIG_POWER_BUTTON_FORCE_DISABLE is not set +# CONFIG_POWER_BUTTON_IS_OPTIONAL is not set +# CONFIG_REG_SCRIPT is not set +# CONFIG_DEBUG_BOOT_STATE is not set diff --git a/projects/coreboot/configs/seabios/x60/revision b/projects/coreboot/configs/seabios/x60/revision new file mode 100644 index 00000000..1ab8299e --- /dev/null +++ b/projects/coreboot/configs/seabios/x60/revision @@ -0,0 +1 @@ +2a3434757ef425dbdfedf1fc69e1a033a6e7310d diff --git a/projects/coreboot/configs/targets b/projects/coreboot/configs/targets index d7e90413..5b8e87b0 100644 --- a/projects/coreboot/configs/targets +++ b/projects/coreboot/configs/targets @@ -1 +1,2 @@ depthcharge +seabios diff --git a/projects/coreboot/coreboot b/projects/coreboot/coreboot index 2a414dee..f577ca26 100755 --- a/projects/coreboot/coreboot +++ b/projects/coreboot/coreboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -74,23 +74,12 @@ build() { local crossgcc_bin_path="$crossgcc_build_path/bin/" local vboot_sources_path=$( project_sources_path "vboot" "vboot" "devices" ) - project_action "build" "crossgcc" "$arch" - if git_project_check "$repository" then git_project_checkout "$project" "$repository" "$payload" "$@" fi - project_action "checkout" "vboot" "devices" - - project_action "build" "$payload" "$@" - - if coreboot_ec_check "$payload" "$@" - then - ec=$( coreboot_ec "$payload" "$@" ) - - project_action "build" "$ec" "$@" - fi + project_action_arguments "checkout" "vboot" "devices" rm -f "$sources_path/.xcompile" diff --git a/projects/coreboot/coreboot-helper b/projects/coreboot/coreboot-helper index b7849373..8a528fa5 100644..100755 --- a/projects/coreboot/coreboot-helper +++ b/projects/coreboot/coreboot-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/cros-ec/cros-ec b/projects/cros-ec/cros-ec index 1e90c28e..8fb75003 100755 --- a/projects/cros-ec/cros-ec +++ b/projects/cros-ec/cros-ec @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -81,9 +81,7 @@ build() { local config=$( cros_ec_config "$@" ) - local crossgcc_bin_prefix=$( project_action "prefix" "crossgcc" "$arch" ) - - project_action "build" "crossgcc" "$arch" + local crossgcc_bin_prefix=$( project_action_arguments "prefix" "crossgcc" "$arch" ) make -C "$sources_path" out="$build_path" CROSS_COMPILE="$crossgcc_bin_prefix" HOST_CROSS_COMPILE= BOARD="$config" -j$TASKS fi diff --git a/projects/cros-ec/cros-ec-helper b/projects/cros-ec/cros-ec-helper index abbc869c..a2ec762c 100755 --- a/projects/cros-ec/cros-ec-helper +++ b/projects/cros-ec/cros-ec-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/cros-scripts/cros-scripts b/projects/cros-scripts/cros-scripts index 4e3bb459..0db79f96 100755 --- a/projects/cros-scripts/cros-scripts +++ b/projects/cros-scripts/cros-scripts @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/cros-scripts/install/cros-boot-keys b/projects/cros-scripts/install/cros-boot-keys index 416b7604..28b25175 100755 --- a/projects/cros-scripts/install/cros-boot-keys +++ b/projects/cros-scripts/install/cros-boot-keys @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -31,16 +31,16 @@ ALGORITHMS="7 7 11 7 7 4 11 11 11" MODES="7 7 11 7 10" usage() { - printf "$executable [action]\n" >&2 + printf '%s\n' "$executable [action]" >&2 - printf "\nActions:\n" >&2 - printf " generate - Generate a set of keys\n" >&2 - printf " verify - Verify keyblocks\n" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' generate - Generate a set of keys' >&2 + printf '%s\n' ' verify - Verify keyblocks' >&2 - printf "\nEnvironment variables:\n" >&2 - printf " KEYS_VERSION - Version to give the keys\n" >&2 - printf " VBOOT_KEYS_PATH - Path to the vboot keys\n" >&2 - printf " VBOOT_TOOLS_PATH - Path to vboot tools\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' KEYS_VERSION - Version to give the keys' >&2 + printf '%s\n' ' VBOOT_KEYS_PATH - Path to the vboot keys' >&2 + printf '%s\n' ' VBOOT_TOOLS_PATH - Path to vboot tools' >&2 } keys_override_confirm() { @@ -68,9 +68,9 @@ keys_override_confirm() { return 0 fi - printf "This is going to override keys stored in the following directory:\n" - printf " $VBOOT_KEYS_PATH\n" - printf "Press enter to confirm: " + printf '%s\n' 'This is going to override keys stored in the following directory:' + printf '%s\n' " $VBOOT_KEYS_PATH" + printf '%s' 'Press enter to confirm: ' read confirm } @@ -89,8 +89,8 @@ generate() { for key in $KEYS do - algorithm=$( echo "$algorithms" | sed "s/$REGEXP/\1/g" ) - algorithms=$( echo "$algorithms" | sed "s/$REGEXP/\2/g" ) + algorithm=$( printf '%s\n' "$algorithms" | sed "s/$REGEXP/\1/g" ) + algorithms=$( printf '%s\n' "$algorithms" | sed "s/$REGEXP/\2/g" ) key_length=$(( 1 << (10 + ($algorithm / 3)) )) @@ -104,23 +104,23 @@ generate() { rm -f "$VBOOT_KEYS_PATH/$key.$PEM" "$VBOOT_KEYS_PATH/$key.$CRT" "$VBOOT_KEYS_PATH/$key.$KEYB" done - printf "\nGenerated keys $KEYS\n" + printf '\n%s\n' "Generated keys $KEYS" for keyblock in $KEYBLOCKS do - pubkey=$( echo "$subkeys" | sed "s/$REGEXP/\1/g" ) - subkeys=$( echo "$subkeys" | sed "s/$REGEXP/\2/g" ) - privkey=$( echo "$subkeys" | sed "s/$REGEXP/\1/g" ) - subkeys=$( echo "$subkeys" | sed "s/$REGEXP/\2/g" ) + pubkey=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\1/g" ) + subkeys=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\2/g" ) + privkey=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\1/g" ) + subkeys=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\2/g" ) - mode=$( echo "$modes" | sed "s/$REGEXP/\1/g" ) - modes=$( echo "$modes" | sed "s/$REGEXP/\2/g" ) + mode=$( printf '%s\n' "$modes" | sed "s/$REGEXP/\1/g" ) + modes=$( printf '%s\n' "$modes" | sed "s/$REGEXP/\2/g" ) futility vbutil_keyblock --pack "$VBOOT_KEYS_PATH/$keyblock.$KEYBLOCK" --flags "$mode" --datapubkey "$VBOOT_KEYS_PATH/$pubkey.$VBPUBK" --signprivate "$VBOOT_KEYS_PATH/$privkey.$VBPRIVK" futility vbutil_keyblock --unpack "$VBOOT_KEYS_PATH/$keyblock.$KEYBLOCK" --signpubkey "$VBOOT_KEYS_PATH/$privkey.$VBPUBK" done - printf "\nGenerated keyblocks $KEYBLOCKS\n" + printf '\n%s\n' "Generated keyblocks $KEYBLOCKS" } verify() { @@ -130,15 +130,15 @@ verify() { for keyblock in $KEYBLOCKS do - pubkey=$( echo "$subkeys" | sed "s/$REGEXP/\1/g" ) - subkeys=$( echo "$subkeys" | sed "s/$REGEXP/\2/g" ) - privkey=$( echo "$subkeys" | sed "s/$REGEXP/\1/g" ) - subkeys=$( echo "$subkeys" | sed "s/$REGEXP/\2/g" ) + pubkey=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\1/g" ) + subkeys=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\2/g" ) + privkey=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\1/g" ) + subkeys=$( printf '%s\n' "$subkeys" | sed "s/$REGEXP/\2/g" ) futility vbutil_keyblock --unpack "$VBOOT_KEYS_PATH/$keyblock.$KEYBLOCK" --signpubkey "$VBOOT_KEYS_PATH/$privkey.$VBPUBK" done - printf "\nVerified keyblocks $KEYBLOCKS\n" + printf '\n%s\n' "Verified keyblocks $KEYBLOCKS" } requirements() { @@ -151,7 +151,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/cros-scripts/install/cros-firmware-prepare b/projects/cros-scripts/install/cros-firmware-prepare index 73820f05..52deadf5 100755 --- a/projects/cros-scripts/install/cros-firmware-prepare +++ b/projects/cros-scripts/install/cros-firmware-prepare @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -22,34 +22,34 @@ VBPUBK="vbpubk" GBB_FLAGS="dev_screen_short_delay load_option_roms enable_alternate_os force_dev_switch_on force_dev_boot_usb disable_fw_rollback_check enter_triggers_tonorm force_dev_boot_legacy faft_key_overide disable_ec_software_sync default_dev_boot_lefacy disable_pd_software_sync disable_lid_shutdown dev_boot_fastboot_full_cap enable_serial" usage() { - printf "$executable [action] [firmware image] [gbb action|vpd action] [gbb file|gbb flag|vpd file]\n" >&2 + printf '%s\n' "$executable [action] [firmware image] [gbb action|vpd action] [gbb file|gbb flag|vpd file]" >&2 - printf "\nActions:\n" >&2 - printf " sign - Sign firmware image\n" >&2 - printf " verify - Verify firmware image\n" >&2 - printf " gbb - Google Binary Block\n" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' sign - Sign firmware image' >&2 + printf '%s\n' ' verify - Verify firmware image' >&2 + printf '%s\n' ' gbb - Google Binary Block' >&2 - printf "\nGBB actions:\n" >&2 - printf " extract - Extract GBB from firmware image to path \n" >&2 - printf " replace - Replace GBB from path to firmware image\n" >&2 - printf " list - List enabled GBB flags\n" >&2 - printf " enable - Enable GBB flag\n" >&2 - printf " disable - Disable GBB flag\n" >&2 + printf '\n%s\n' 'GBB actions:' >&2 + printf '%s\n' ' extract - Extract GBB from firmware image to path' >&2 + printf '%s\n' ' replace - Replace GBB from path to firmware image' >&2 + printf '%s\n' ' list - List enabled GBB flags' >&2 + printf '%s\n' ' enable - Enable GBB flag' >&2 + printf '%s\n' ' disable - Disable GBB flag' >&2 - printf "\nGBB flags:\n" >&2 + printf '\n%s\n' 'GBB flags:' >&2 for flag in $GBB_FLAGS do - printf " $flag\n" >&2 + printf '%s\n' " $flag" >&2 done - printf "\nVPD actions:\n" >&2 - printf " extract - Extract VPD from firmware image to path \n" >&2 - printf " replace - Replace VPD from path to firmware image\n" >&2 + printf '\n%s\n' 'VPD actions:' >&2 + printf '%s\n' ' extract - Extract VPD from firmware image to path' >&2 + printf '%s\n' ' replace - Replace VPD from path to firmware image' >&2 - printf "\nEnvironment variables:\n" >&2 - printf " VBOOT_KEYS_PATH - Path to the vboot keys\n" >&2 - printf " VBOOT_TOOLS_PATH - Path to vboot tools\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' VBOOT_KEYS_PATH - Path to the vboot keys' >&2 + printf '%s\n' ' VBOOT_TOOLS_PATH - Path to vboot tools' >&2 } sign() { @@ -58,15 +58,15 @@ sign() { futility sign --signprivate="$VBOOT_KEYS_PATH/firmware_data_key.$VBPRIVK" --keyblock "$VBOOT_KEYS_PATH/firmware.$KEYBLOCK" --kernelkey "$VBOOT_KEYS_PATH/kernel_subkey.$VBPUBK" --infile "$firmware_image_path" futility gbb_utility -s --recoverykey="$VBOOT_KEYS_PATH/recovery_key.$VBPUBK" --rootkey="$VBOOT_KEYS_PATH/root_key.$VBPUBK" "$firmware_image_path" "$firmware_image_path" - printf "\nSigned firmwares image $firmware_image_path\n" + printf '\n%s\n' "Signed firmwares image $firmware_image_path" } verify() { local firmware_image_path=$1 - futility verify -k "$VBOOT_KEYS_PATH/root_key.$VBPUBK" "$firmware_image_path" || ( printf "\nBad firmware image signature!\n" >&2 && return 1 ) + futility verify -k "$VBOOT_KEYS_PATH/root_key.$VBPUBK" "$firmware_image_path" || ( printf '\n%s\n' "Bad firmware image signature!" >&2 && return 1 ) - printf "\nVerified firmware image $firmware_image_path\n" + printf '\n%s\n' "Verified firmware image $firmware_image_path" } gbb() { @@ -91,7 +91,7 @@ gbb() { futility dump_fmap -x "$firmware_image_path" "GBB:$gbb_file_path" - printf "\nExtracted GBB from $firmware_image_path to $gbb_file_path\n" + printf '\n%s\n' "Extracted GBB from $firmware_image_path to $gbb_file_path" ;; "replace") if [ -z "$gbb_file_path" ] @@ -102,10 +102,10 @@ gbb() { futility load_fmap "$firmware_image_path" "GBB:$gbb_file_path" - printf "\nReplaced GBB from $gbb_file_path to $firmware_image_path\n" + printf '\n%s\n' "Replaced GBB from $gbb_file_path to $firmware_image_path" ;; "list") - printf "GBB flags in $firmware_image_path:\n" + printf '%s\n' "GBB flags in $firmware_image_path:" flags=$( gbb_flags_get "$firmware_image_path" ) @@ -115,7 +115,7 @@ gbb() { if (( $flags & $flag_value )) then - printf " $flag\n" + printf '%s\n' " $flag" fi i=$(( $i + 1 )) @@ -134,7 +134,7 @@ gbb() { if [ -z "$flag_value" ] then - printf "Invalid GBB flag: $gbb_flag\n" >&2 + printf '%s\n' "Invalid GBB flag: $gbb_flag" >&2 exit 1 fi @@ -142,7 +142,7 @@ gbb() { gbb_flags_set "$firmware_image_path" "$flags" - printf "\nEnabled GBB flag $gbb_flag in $firmware_image_path\n" + printf '\n%s\n' "Enabled GBB flag $gbb_flag in $firmware_image_path" ;; "disable") if [ -z "$gbb_flag" ] @@ -156,7 +156,7 @@ gbb() { if [ -z "$flag_value" ] then - printf "Invalid GBB flag: $gbb_flag\n" >&2 + printf '%s\n' "Invalid GBB flag: $gbb_flag" >&2 exit 1 fi @@ -164,7 +164,7 @@ gbb() { gbb_flags_set "$firmware_image_path" "$flags" - printf "\nDisabled GBB flag $gbb_flag in $firmware_image_path\n" + printf '\n%s\n' "Disabled GBB flag $gbb_flag in $firmware_image_path" ;; *) usage @@ -196,7 +196,7 @@ gbb_flag_value() { do if [ "$gbb_flag" = "$flag" ] then - echo $(( 1 << $i )) + printf '%d\n' $(( 1 << $i )) return fi @@ -213,12 +213,12 @@ vpd() { "extract") futility dump_fmap -x "$firmware_image_path" "RO_VPD:$vpd_file_path" - printf "\nExtracted VPD from $firmware_image_path to $vpd_file_path\n" + printf '\n%s\n' "Extracted VPD from $firmware_image_path to $vpd_file_path" ;; "replace") futility load_fmap "$firmware_image_path" "RO_VPD:$vpd_file_path" - printf "\nReplaced VPD from $vpd_file_path to $firmware_image_path\n" + printf '\n%s\n' "Replaced VPD from $vpd_file_path to $firmware_image_path" ;; *) usage @@ -237,7 +237,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/cros-scripts/install/cros-kernel-install b/projects/cros-scripts/install/cros-kernel-install index 589a36c0..7333b3fa 100755 --- a/projects/cros-scripts/install/cros-kernel-install +++ b/projects/cros-scripts/install/cros-kernel-install @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -23,22 +23,22 @@ MODEL="model" NAME="name" usage() { - printf "$executable [action] [storage] [kernel image|kernel modules]\n" >&2 + printf '%s\n' "$executable [action] [storage] [kernel image|kernel modules]" >&2 - printf "\nActions:\n" >&2 - printf " backup - Backup kernel image\n" >&2 - printf " image - Install kernel image\n" >&2 - printf " modules - Install kernel modules" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' backup - Backup kernel image' >&2 + printf '%s\n' ' image - Install kernel image' >&2 + printf '%s\n' ' modules - Install kernel modules' >&2 usage_storage - printf "\nEnvironment variables:\n" >&2 - printf " VBOOT_KEYS_PATH - Path to the vboot keys\n" >&2 - printf " VBOOT_TOOLS_PATH - Path to vboot tools\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' VBOOT_KEYS_PATH - Path to the vboot keys' >&2 + printf '%s\n' ' VBOOT_TOOLS_PATH - Path to vboot tools' >&2 } usage_storage() { - printf "\nStorage:\n" >&2 + printf '\n%s\n' 'Storage:' >&2 local nodes=$( ls "$SYS_BLOCK_PATH" ) local node_path @@ -58,7 +58,7 @@ usage_storage() { continue fi - printf " $node_path - $name\n" >&2 + printf '%s\n' " $node_path - $name" >&2 done } @@ -68,9 +68,9 @@ storage_affect_confirm() { local name=$( storage_name "$storage_path" ) local confirm - printf "This is going to affect the following storage:\n" - printf " $storage_path - $name\n" - printf "Press enter to confirm: " + printf '%s\n' 'This is going to affect the following storage:' + printf '%s\n' " $storage_path - $name" + printf '%s' 'Press enter to confirm: ' read confirm } @@ -95,17 +95,17 @@ storage_name() { return 0 fi - name=$( echo "$name" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) + name=$( printf '%s\n' "$name" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) if [ -f "$vendor_path" ] then vendor=$( cat "$vendor_path" ) - vendor=$( echo "$vendor" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) + vendor=$( printf '%s\n' "$vendor" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) name="$vendor $name" fi - echo "$name" + printf '%s\n' "$name" } storage_partition_path() { @@ -124,7 +124,7 @@ storage_partition_path() { return 1 fi - echo "$storage_partition_path" + printf '%s\n' "$storage_partition_path" } storage_partition_mount_path() { @@ -132,7 +132,7 @@ storage_partition_mount_path() { local storage_partition_mount_path=$( udisksctl info -b "$storage_partition_path" | grep "MountPoints" | sed "s/.*MountPoints:[[:space:]]*\(.*\)/\1/g" ) - echo "$storage_partition_mount_path" + printf '%s\n' "$storage_partition_mount_path" } storage_kernel_path() { @@ -155,13 +155,13 @@ backup() { if [ -z "$storage_kernel_path" ] then - printf "No kernel partition found on storage $storage_path\n" >&2 + printf '%s\n' "No kernel partition found on storage $storage_path" >&2 return 1 fi cat "$storage_kernel_path" > "$kernel_image_path" - printf "\nBacked up kernel image to $kernel_image_path\n" + printf '\n%s\n' "Backed up kernel image to $kernel_image_path" } image() { @@ -172,7 +172,7 @@ image() { if [ -z "$storage_kernel_path" ] then - printf "No kernel partition found on storage $storage_path\n" >&2 + printf '%s\n' "No kernel partition found on storage $storage_path" >&2 return 1 fi @@ -181,7 +181,7 @@ image() { cat "$kernel_image_path" > "$storage_kernel_path" sync - printf "\nInstalled kernel image on storage $storage_path\n" + printf '\n%s\n' "Installed kernel image on storage $storage_path" } modules() { @@ -192,7 +192,7 @@ modules() { if [ -z "$storage_rootfs_path" ] then - printf "No rootfs partition found on storage $storage_path\n" >&2 + printf '%s\n' "No rootfs partition found on storage $storage_path" >&2 return 1 fi @@ -208,7 +208,7 @@ modules() { udisksctl unmount -b "$storage_rootfs_path" - printf "\nInstalled kernel modules on storage $storage_path\n" + printf '\n%s\n' "Installed kernel modules on storage $storage_path" } requirements() { @@ -221,7 +221,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/cros-scripts/install/cros-kernel-prepare b/projects/cros-scripts/install/cros-kernel-prepare index 4f374db4..047bb5c1 100755 --- a/projects/cros-scripts/install/cros-kernel-prepare +++ b/projects/cros-scripts/install/cros-kernel-prepare @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -27,21 +27,21 @@ FIT="fit" IMG="img" usage() { - printf "$executable [action] [kernel files|kernel image] [medium]\n" >&2 + printf '%s\n' "$executable [action] [kernel files|kernel image] [medium]" >&2 - printf "\nActions:\n" >&2 - printf " pack - Pack kernel files to a medium-specific image\n" >&2 - printf " sign - Sign kernel image\n" >&2 - printf " verify - Very kernel image signatures\n" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' pack - Pack kernel files to a medium-specific image' >&2 + printf '%s\n' ' sign - Sign kernel image' >&2 + printf '%s\n' ' verify - Very kernel image signatures' >&2 - printf "\nMedium:\n" >&2 - printf " usb - External USB storage\n" >&2 - printf " mmc - External SD card storage\n" >&2 - printf " emmc - Internal storage\n" >&2 + printf '\n%s\n' 'Medium:' >&2 + printf '%s\n' ' usb - External USB storage' >&2 + printf '%s\n' ' mmc - External SD card storage' >&2 + printf '%s\n' ' emmc - Internal storage' >&2 - printf "\nEnvironment variables:\n" >&2 - printf " VBOOT_KEYS_PATH - Path to the vboot keys\n" >&2 - printf " VBOOT_TOOLS_PATH - Path to vboot tools\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' VBOOT_KEYS_PATH - Path to the vboot keys' >&2 + printf '%s\n' ' VBOOT_TOOLS_PATH - Path to vboot tools' >&2 } pack() { @@ -59,7 +59,7 @@ pack() { mkimage -f "$kernel_its_path" "$kernel_fit_path" futility vbutil_kernel --pack "$kernel_image_path" --version 1 --arch "$arch" --keyblock "$VBOOT_KEYS_PATH/kernel.$KEYBLOCK" --signprivate "$VBOOT_KEYS_PATH/kernel_data_key.$VBPRIVK" --config "$cmdline_path" --vmlinuz "$kernel_fit_path" --bootloader "$bootloader_path" - printf "\nPacked kernel image $kernel_image_path\n" + printf '\n%s\n' "Packed kernel image $kernel_image_path" } sign() { @@ -67,7 +67,7 @@ sign() { futility vbutil_kernel --repack "$kernel_image_path" --version 1 --keyblock "$VBOOT_KEYS_PATH/kernel.$KEYBLOCK" --signprivate "$VBOOT_KEYS_PATH/kernel_data_key.$VBPRIVK" --oldblob "$kernel_image_path" - printf "\nSigned kernel image $kernel_image_path\n" + printf '\n%s\n' "Signed kernel image $kernel_image_path" } verify() { @@ -75,7 +75,7 @@ verify() { futility vbutil_kernel --verify "$kernel_image_path" --signpubkey "$VBOOT_KEYS_PATH/kernel_subkey.$VBPUBK" - printf "\nVerified kernel image $kernel_image_path\n" + printf '\n%s\n' "Verified kernel image $kernel_image_path" } requirements() { @@ -88,7 +88,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/cros-scripts/install/cros-medium-setup b/projects/cros-scripts/install/cros-medium-setup index c3419868..2b278a9d 100755 --- a/projects/cros-scripts/install/cros-medium-setup +++ b/projects/cros-scripts/install/cros-medium-setup @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -32,22 +32,22 @@ GPT_SIZE=34 KERNEL_SIZE=16384 usage() { - printf "$executable [action] [storage] [rootfs tarball|kernel files] [medium]\n" >&2 + printf '%s\n' "$executable [action] [storage] [rootfs tarball|kernel files] [medium]" >&2 - printf "\nActions:\n" >&2 - printf " partitions - Setup partitions on storage\n" >&2 - printf " rootfs - Install rootfs tarball to storage\n" >&2 - printf " kernel - Install kernel files to storage\n" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' partitions - Setup partitions on storage' >&2 + printf '%s\n' ' rootfs - Install rootfs tarball to storage' >&2 + printf '%s\n' ' kernel - Install kernel files to storage' >&2 usage_storage - printf "\nEnvironment variables:\n" >&2 - printf " KERNEL_PATH - Path to the kernel image\n" >&2 - printf " VBOOT_TOOLS_PATH - Path to vboot tools\n" >&2 + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' KERNEL_PATH - Path to the kernel image' >&2 + printf '%s\n' ' VBOOT_TOOLS_PATH - Path to vboot tools' >&2 } usage_storage() { - printf "\nStorage:\n" >&2 + printf '\n%s\n' 'Storage:' >&2 local nodes=$( ls "$SYS_BLOCK_PATH" ) local node_path @@ -67,7 +67,7 @@ usage_storage() { continue fi - printf " $node_path - $name\n" >&2 + printf '%s\n' " $node_path - $name" >&2 done } @@ -77,9 +77,9 @@ storage_affect_confirm() { local name=$( storage_name "$storage_path" ) local confirm - printf "This is going to affect the following storage:\n" - printf " $storage_path - $name\n" - printf "Press enter to confirm: " + printf '%s\n' 'This is going to affect the following storage:' + printf '%s\n' " $storage_path - $name" + printf '%s' 'Press enter to confirm: ' read confirm } @@ -104,17 +104,17 @@ storage_name() { return 0 fi - name=$( echo "$name" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) + name=$( printf '%s\n' "$name" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) if [ -f "$vendor_path" ] then vendor=$( cat "$vendor_path" ) - vendor=$( echo "$vendor" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) + vendor=$( printf '%s\n' "$vendor" | sed -e "s/^[[:space:]]*//;s/[[:space:]]*$//" ) name="$vendor $name" fi - echo "$name" + printf '%s\n' "$name" } storage_partition_path() { @@ -133,7 +133,7 @@ storage_partition_path() { return 1 fi - echo "$storage_partition_path" + printf '%s\n' "$storage_partition_path" } storage_partition_mount_path() { @@ -141,7 +141,7 @@ storage_partition_mount_path() { local storage_partition_mount_path=$( udisksctl info -b "$storage_partition_path" | grep "MountPoints" | sed "s/.*MountPoints:[[:space:]]*\(.*\)/\1/g" ) - echo "$storage_partition_mount_path" + printf '%s\n' "$storage_partition_mount_path" } partitions() { @@ -161,7 +161,7 @@ partitions() { udisksctl unmount -b "$partition" || true done - ( echo "g" ; echo "w" ) | fdisk "$storage_path" + ( printf '%s\n' "g" ; printf '%s\n' "w" ) | fdisk "$storage_path" cgpt create "$storage_path" @@ -180,7 +180,7 @@ partitions() { mkfs.ext4 -F "$storage_rootfs_path" - printf "\nSetup partitions on storage $storage_path\n" + printf '\n%s\n' "Setup partitions on storage $storage_path" } rootfs() { @@ -201,7 +201,7 @@ rootfs() { udisksctl unmount -b "$storage_rootfs_path" - printf "\nInstalled rootfs on storage $storage_path\n" + printf '\n%s\n' "Installed rootfs on storage $storage_path" } kernel() { @@ -230,7 +230,7 @@ kernel() { udisksctl unmount -b "$storage_rootfs_path" - printf "\nInstalled kernel on storage $storage_path\n" + printf '\n%s\n' "Installed kernel on storage $storage_path" } requirements() { @@ -243,7 +243,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/cros-tools/cros-tools b/projects/cros-tools/cros-tools index 3f0b0e83..41d4c8f3 100755 --- a/projects/cros-tools/cros-tools +++ b/projects/cros-tools/cros-tools @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/crossgcc/configs/targets b/projects/crossgcc/configs/targets index fb05f39d..8c9fb8ba 100644 --- a/projects/crossgcc/configs/targets +++ b/projects/crossgcc/configs/targets @@ -1 +1,2 @@ arm +i386 diff --git a/projects/crossgcc/crossgcc b/projects/crossgcc/crossgcc index aa930213..f0d7a5d1 100755 --- a/projects/crossgcc/crossgcc +++ b/projects/crossgcc/crossgcc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -52,7 +52,7 @@ extract() { if [ -f "$tarball_sources_path" ] && ! [ -f "$tarball_install_path" ] then - printf "Copying source archive $tarball for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Copying source archive $tarball for $project (with ${arguments:-no argument})" mkdir -p "$tarball_install_directory_path" @@ -92,7 +92,7 @@ update() { if [ -f $tarball_sources_path ] then - printf "Copying source archive $tarball for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Copying source archive $tarball for $project (with ${arguments:-no argument})" mkdir -p "$tarball_install_directory_path" @@ -123,7 +123,10 @@ prefix() { case $arch in "arm") - echo "$build_path/bin/arm-eabi-" + printf '\n%s\n' "$build_path/bin/arm-eabi-" + ;; + "i386") + printf '\n%s\n' "$build_path/bin/i386-elf-" ;; esac } @@ -145,7 +148,16 @@ build() { mkdir -p "$build_path" - make -C "$sources_path" CPUS="$TASKS" DEST="$build_path" "crossgcc-$arch" + local bootstrap_flag + + if ! crossgcc_same_major_version_test; then + printf '\n%s' 'GCC major versions differ. Bootstrapping' 1>&2 + printf '%s\n\n' ' to avoid potential build failure' 1>&2 + + bootstrap_flag='-b' + fi + + make -C "$sources_path" "$bootstrap_flag" CPUS="$TASKS" DEST="$build_path" "crossgcc-$arch" } build_check() { @@ -180,7 +192,7 @@ release() { if [ -f "$tarball_install_path" ] && ! [ -f "$tarball_release_path" ] then - printf "Releasing source archive $tarball for $project (with ${arguments:-no argument})\n" + printf '%s\n' "Releasing source archive $tarball for $project (with ${arguments:-no argument})" cp "$tarball_install_path" "$tarball_release_path" file_verification_create "$tarball_release_path" diff --git a/projects/crossgcc/crossgcc-helper b/projects/crossgcc/crossgcc-helper index b4979f89..3891a15c 100755 --- a/projects/crossgcc/crossgcc-helper +++ b/projects/crossgcc/crossgcc-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -15,12 +15,27 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. +crossgcc_same_major_version_test() { + local buildgcc_path="$sources_path/util/crossgcc/buildgcc" + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + + local crossgcc_version="$(sed -rne 's/^GCC_VERSION=(.*)$/\1/p' "$buildgcc_path")" + local host_gcc_version="$(gcc -dumpversion)" + + if [[ "${host_gcc_version%%.*}" -eq "${crossgcc_version%%.*}" ]]; then + + return 0 + else + return 1 + fi +} + crossgcc_tarballs() { local sources_path=$( project_sources_path "$project" "$repository" "$@" ) local install_path="$sources_path/util/crossgcc/tarballs/" local tarballs=$( ls "$sources_path/util/crossgcc/sum" | sed "s/.cksum$//" ) - echo "$tarballs" + printf '%s\n' "$tarballs" } crossgcc_tarball_sources_path() { @@ -28,7 +43,7 @@ crossgcc_tarball_sources_path() { local tarball_sources_path="$root/$SOURCES/$tarball" - echo "$tarball_sources_path" + printf '%s\n' "$tarball_sources_path" } crossgcc_tarball_install_path() { @@ -39,7 +54,7 @@ crossgcc_tarball_install_path() { local install_path="$sources_path/util/crossgcc/tarballs/" local tarball_install_path="$install_path/$tarball" - echo "$tarball_install_path" + printf '%s\n' "$tarball_install_path" } crossgcc_tarball_release_path() { @@ -49,5 +64,5 @@ crossgcc_tarball_release_path() { local release_path=$( project_release_path "$project" "$SOURCES" "$@" ) local tarball_release_path="$release_path/$tarball" - echo "$tarball_release_path" + printf '%s\n' "$tarball_release_path" } diff --git a/projects/dejavu-fonts/configs/install b/projects/dejavu-fonts/configs/install new file mode 100644 index 00000000..121743c4 --- /dev/null +++ b/projects/dejavu-fonts/configs/install @@ -0,0 +1 @@ +DejaVuSansMono.ttf:DejaVuSansMono.ttf diff --git a/projects/dejavu-fonts/configs/revision b/projects/dejavu-fonts/configs/revision new file mode 100644 index 00000000..218592b3 --- /dev/null +++ b/projects/dejavu-fonts/configs/revision @@ -0,0 +1 @@ +version_2_37 diff --git a/projects/dejavu-fonts/dejavu-fonts b/projects/dejavu-fonts/dejavu-fonts new file mode 100755 index 00000000..037aa3d9 --- /dev/null +++ b/projects/dejavu-fonts/dejavu-fonts @@ -0,0 +1,120 @@ +#!/usr/bin/env bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +download() { + local repository="$project" + + project_download_git "$project" \ + "$repository" \ + 'https://github.com/dejavu-fonts/dejavu-fonts.git' \ + "$@" + + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + + download_wrapper "$sources_path/resources" \ + 'https://www.unicode.org/Public/UNIDATA/UnicodeData.txt' \ + 'https://www.unicode.org/Public/UNIDATA/Blocks.txt' +} + +download_check() { + local repository="$project" + + project_download_check_git "$project" "$repository" "$@" +} + +extract() { + local repository="$project" + + project_extract "$project" "$@" +} + +extract_check() { + local repository="$project" + + project_extract_check "$project" "$@" +} + +update() { + local repository="$project" + + project_update_git "$project" "$repository" "$@" +} + +update_check() { + local repository="$project" + + project_update_check_git "$project" "$repository" "$@" +} + +build() { + local repository="$project" + + project_sources_directory_missing_empty_error "$project" "$repository" "$@" + + if git_project_check "$repository"; then + git_project_checkout "$project" "$repository" "$@" + fi + + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + local build_path="$(project_build_path "$project" "$@")" + + mkdir -p "$build_path" + + # Create a symlink to the orthography files provided by fontconfig + ln -s "$root/$SOURCES/fontconfig/fc-lang" "$sources_path/resources/fc-lang" + + make -C "$sources_path" -j"$TASKS" + cp "$sources_path/build"/[!.]*.ttf "$build_path" + make -C "$sources_path" clean +} + +build_check() { + project_build_check "$project" "$@" +} + +install() { + project_install "$project" "$@" +} + +install_check() { + project_install_check "$project" "$@" +} + +release() { + local repository="$project" + + project_release_sources_git "$project" "$repository" "$@" +} + +release_check() { + local repository="$project" + + project_release_check_sources_git "$project" "$repository" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch b/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch new file mode 100644 index 00000000..52798b1e --- /dev/null +++ b/projects/dejavu-fonts/patches/0001-Preserve-unicode-source-files-thru-git-clean-df.patch @@ -0,0 +1,24 @@ +From 9ac03500773a1cc69b198ce1c43770a7fc66da98 Mon Sep 17 00:00:00 2001 +From: Andrew Robbins <contact@andrewrobbins.info> +Date: Tue, 5 Sep 2017 23:57:34 -0400 +Subject: [PATCH] Preserve unicode source files thru `git clean -df` + +UnicodeData.txt and Blocks.txt should be preserved after a +`git clean -df` to avoid needless refetching of these resources. +--- + .gitignore | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/.gitignore b/.gitignore +index dedd2b5..841e748 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -2,3 +2,5 @@ build/ + dist/ + tmp/ + /src/*.sfd~ ++resources/Blocks.txt ++resources/UnicodeData.txt +-- +1.9.1 + diff --git a/projects/depthcharge/configs/veyron/targets b/projects/depthcharge/configs/veyron/targets new file mode 100644 index 00000000..1722192f --- /dev/null +++ b/projects/depthcharge/configs/veyron/targets @@ -0,0 +1,2 @@ +minnie +speedy diff --git a/projects/depthcharge/depthcharge b/projects/depthcharge/depthcharge index ad93bdef..fe64c7d9 100755 --- a/projects/depthcharge/depthcharge +++ b/projects/depthcharge/depthcharge @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -76,10 +76,7 @@ build() { local arch=$( depthcharge_arch "$@" ) local device=$( depthcharge_device "$@" ) - project_action "build" "crossgcc" "$arch" - project_action "build" "libpayload" "$project" "$@" - - project_action "checkout" "vboot" "devices" + project_action_arguments "checkout" "vboot" "devices" mkdir -p "$build_path" diff --git a/projects/depthcharge/depthcharge-helper b/projects/depthcharge/depthcharge-helper index b7e896b3..440fe0fe 100755 --- a/projects/depthcharge/depthcharge-helper +++ b/projects/depthcharge/depthcharge-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/flashmap/flashmap b/projects/flashmap/flashmap index 0e038ffd..4ac6ab70 100755 --- a/projects/flashmap/flashmap +++ b/projects/flashmap/flashmap @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/flashrom-cros/flashrom-cros b/projects/flashrom-cros/flashrom-cros index 7cb14cdf..8e793fa7 100755 --- a/projects/flashrom-cros/flashrom-cros +++ b/projects/flashrom-cros/flashrom-cros @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/flashrom/flashrom b/projects/flashrom/flashrom index 45f0ffc4..0206e6b7 100755 --- a/projects/flashrom/flashrom +++ b/projects/flashrom/flashrom @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/fontconfig/configs/revision b/projects/fontconfig/configs/revision new file mode 100644 index 00000000..56beced9 --- /dev/null +++ b/projects/fontconfig/configs/revision @@ -0,0 +1 @@ +2.12.4 diff --git a/projects/fontconfig/fontconfig b/projects/fontconfig/fontconfig new file mode 100755 index 00000000..48de22f2 --- /dev/null +++ b/projects/fontconfig/fontconfig @@ -0,0 +1,80 @@ +#!/usr/bin/env bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +download() { + local repository="$project" + + project_download_git "$project" \ + "$repository" \ + 'https://anongit.freedesktop.org/git/fontconfig' \ + "$@" +} + +download_check() { + local repository="$project" + + project_download_check_git "$project" "$repository" "$@" +} + +extract() { + local repository="$project" + + project_extract "$project" "$@" +} + +extract_check() { + local repository="$project" + + project_extract_check "$project" "$@" +} + +update() { + local repository="$project" + + project_update_git "$project" "$repository" "$@" +} + +update_check() { + local repository="$project" + + project_update_check_git "$project" "$repository" "$@" +} + +release() { + local repository="$project" + + project_release_sources_git "$project" "$repository" "$@" +} + +release_check() { + local repository="$project" + + project_release_check_sources_git "$project" "$repository" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/grub/configs/bios/arch b/projects/grub/configs/bios/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/grub/configs/bios/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/grub/configs/bios/config b/projects/grub/configs/bios/config new file mode 100644 index 00000000..9e627e2f --- /dev/null +++ b/projects/grub/configs/bios/config @@ -0,0 +1,2 @@ +set root=(cbfsdisk) +source (cbfsdisk)/fallback/grub.cfg diff --git a/projects/grub/configs/bios/format b/projects/grub/configs/bios/format new file mode 100644 index 00000000..58df395e --- /dev/null +++ b/projects/grub/configs/bios/format @@ -0,0 +1 @@ +i386-pc diff --git a/projects/grub/configs/bios/install b/projects/grub/configs/bios/install new file mode 100644 index 00000000..241e2762 --- /dev/null +++ b/projects/grub/configs/bios/install @@ -0,0 +1,202 @@ +i386-pc/acpi.mod:i386-pc/acpi.mod +i386-pc/adler32.mod:i386-pc/adler32.mod +i386-pc/affs.mod:i386-pc/affs.mod +i386-pc/afs.mod:i386-pc/afs.mod +i386-pc/ahci.mod:i386-pc/ahci.mod +i386-pc/all_video.mod:i386-pc/all_video.mod +i386-pc/archelp.mod:i386-pc/archelp.mod +i386-pc/ata.mod:i386-pc/ata.mod +i386-pc/at_keyboard.mod:i386-pc/at_keyboard.mod +i386-pc/backtrace.mod:i386-pc/backtrace.mod +i386-pc/bfs.mod:i386-pc/bfs.mod +i386-pc/biosdisk.mod:i386-pc/biosdisk.mod +i386-pc/bitmap.mod:i386-pc/bitmap.mod +i386-pc/bitmap_scale.mod:i386-pc/bitmap_scale.mod +i386-pc/boot.mod:i386-pc/boot.mod +i386-pc/bsd.mod:i386-pc/bsd.mod +i386-pc/btrfs.mod:i386-pc/btrfs.mod +i386-pc/cat.mod:i386-pc/cat.mod +i386-pc/cbfs.mod:i386-pc/cbfs.mod +i386-pc/cbls.mod:i386-pc/cbls.mod +i386-pc/cbmemc.mod:i386-pc/cbmemc.mod +i386-pc/cbtime.mod:i386-pc/cbtime.mod +i386-pc/chain.mod:i386-pc/chain.mod +i386-pc/cmosdump.mod:i386-pc/cmosdump.mod +i386-pc/cmostest.mod:i386-pc/cmostest.mod +i386-pc/cmp.mod:i386-pc/cmp.mod +i386-pc/configfile.mod:i386-pc/configfile.mod +i386-pc/cpio.mod:i386-pc/cpio.mod +i386-pc/cpio_be.mod:i386-pc/cpio_be.mod +i386-pc/cpuid.mod:i386-pc/cpuid.mod +i386-pc/crc64.mod:i386-pc/crc64.mod +i386-pc/crypto.mod:i386-pc/crypto.mod +i386-pc/cryptodisk.mod:i386-pc/cryptodisk.mod +i386-pc/cs5536.mod:i386-pc/cs5536.mod +i386-pc/date.mod:i386-pc/date.mod +i386-pc/datehook.mod:i386-pc/datehook.mod +i386-pc/datetime.mod:i386-pc/datetime.mod +i386-pc/disk.mod:i386-pc/disk.mod +i386-pc/diskfilter.mod:i386-pc/diskfilter.mod +i386-pc/div_test.mod:i386-pc/div_test.mod +i386-pc/echo.mod:i386-pc/echo.mod +i386-pc/efiemu.mod:i386-pc/efiemu.mod +i386-pc/ehci.mod:i386-pc/ehci.mod +i386-pc/elf.mod:i386-pc/elf.mod +i386-pc/eval.mod:i386-pc/eval.mod +i386-pc/exfat.mod:i386-pc/exfat.mod +i386-pc/ext2.mod:i386-pc/ext2.mod +i386-pc/extcmd.mod:i386-pc/extcmd.mod +i386-pc/fat.mod:i386-pc/fat.mod +i386-pc/file.mod:i386-pc/file.mod +i386-pc/fshelp.mod:i386-pc/fshelp.mod +i386-pc/gcry_arcfour.mod:i386-pc/gcry_arcfour.mod +i386-pc/gcry_blowfish.mod:i386-pc/gcry_blowfish.mod +i386-pc/gcry_camellia.mod:i386-pc/gcry_camellia.mod +i386-pc/gcry_cast5.mod:i386-pc/gcry_cast5.mod +i386-pc/gcry_crc.mod:i386-pc/gcry_crc.mod +i386-pc/gcry_des.mod:i386-pc/gcry_des.mod +i386-pc/gcry_dsa.mod:i386-pc/gcry_dsa.mod +i386-pc/gcry_idea.mod:i386-pc/gcry_idea.mod +i386-pc/gcry_md4.mod:i386-pc/gcry_md4.mod +i386-pc/gcry_md5.mod:i386-pc/gcry_md5.mod +i386-pc/gcry_rfc2268.mod:i386-pc/gcry_rfc2268.mod +i386-pc/gcry_rijndael.mod:i386-pc/gcry_rijndael.mod +i386-pc/gcry_rmd160.mod:i386-pc/gcry_rmd160.mod +i386-pc/gcry_rsa.mod:i386-pc/gcry_rsa.mod +i386-pc/gcry_seed.mod:i386-pc/gcry_seed.mod +i386-pc/gcry_serpent.mod:i386-pc/gcry_serpent.mod +i386-pc/gcry_sha1.mod:i386-pc/gcry_sha1.mod +i386-pc/gcry_sha256.mod:i386-pc/gcry_sha256.mod +i386-pc/gcry_sha512.mod:i386-pc/gcry_sha512.mod +i386-pc/gcry_tiger.mod:i386-pc/gcry_tiger.mod +i386-pc/gcry_twofish.mod:i386-pc/gcry_twofish.mod +i386-pc/gcry_whirlpool.mod:i386-pc/gcry_whirlpool.mod +i386-pc/gettext.mod:i386-pc/gettext.mod +i386-pc/gfxmenu.mod:i386-pc/gfxmenu.mod +i386-pc/gfxterm_background.mod:i386-pc/gfxterm_background.mod +i386-pc/gfxterm_menu.mod:i386-pc/gfxterm_menu.mod +i386-pc/gptsync.mod:i386-pc/gptsync.mod +i386-pc/gzio.mod:i386-pc/gzio.mod +i386-pc/halt.mod:i386-pc/halt.mod +i386-pc/hashsum.mod:i386-pc/hashsum.mod +i386-pc/hdparm.mod:i386-pc/hdparm.mod +i386-pc/help.mod:i386-pc/help.mod +i386-pc/hexdump.mod:i386-pc/hexdump.mod +i386-pc/hfs.mod:i386-pc/hfs.mod +i386-pc/hfsplus.mod:i386-pc/hfsplus.mod +i386-pc/http.mod:i386-pc/http.mod +i386-pc/iorw.mod:i386-pc/iorw.mod +i386-pc/iso9660.mod:i386-pc/iso9660.mod +i386-pc/jfs.mod:i386-pc/jfs.mod +i386-pc/jpeg.mod:i386-pc/jpeg.mod +i386-pc/keystatus.mod:i386-pc/keystatus.mod +i386-pc/linux.mod:i386-pc/linux.mod +i386-pc/linux16.mod:i386-pc/linux16.mod +i386-pc/loadenv.mod:i386-pc/loadenv.mod +i386-pc/loopback.mod:i386-pc/loopback.mod +i386-pc/ls.mod:i386-pc/ls.mod +i386-pc/lsacpi.mod:i386-pc/lsacpi.mod +i386-pc/lsmmap.mod:i386-pc/lsmmap.mod +i386-pc/lspci.mod:i386-pc/lspci.mod +i386-pc/luks.mod:i386-pc/luks.mod +i386-pc/lvm.mod:i386-pc/lvm.mod +i386-pc/lzopio.mod:i386-pc/lzopio.mod +i386-pc/mda_text.mod:i386-pc/mda_text.mod +i386-pc/mdraid09.mod:i386-pc/mdraid09.mod +i386-pc/mdraid09_be.mod:i386-pc/mdraid09_be.mod +i386-pc/mdraid1x.mod:i386-pc/mdraid1x.mod +i386-pc/memdisk.mod:i386-pc/memdisk.mod +i386-pc/memrw.mod:i386-pc/memrw.mod +i386-pc/minicmd.mod:i386-pc/minicmd.mod +i386-pc/minix.mod:i386-pc/minix.mod +i386-pc/minix2.mod:i386-pc/minix2.mod +i386-pc/minix2_be.mod:i386-pc/minix2_be.mod +i386-pc/minix3.mod:i386-pc/minix3.mod +i386-pc/minix3_be.mod:i386-pc/minix3_be.mod +i386-pc/minix_be.mod:i386-pc/minix_be.mod +i386-pc/mmap.mod:i386-pc/mmap.mod +i386-pc/morse.mod:i386-pc/morse.mod +i386-pc/mpi.mod:i386-pc/mpi.mod +i386-pc/msdospart.mod:i386-pc/msdospart.mod +i386-pc/multiboot.mod:i386-pc/multiboot.mod +i386-pc/multiboot2.mod:i386-pc/multiboot2.mod +i386-pc/nativedisk.mod:i386-pc/nativedisk.mod +i386-pc/net.mod:i386-pc/net.mod +i386-pc/newc.mod:i386-pc/newc.mod +i386-pc/nilfs2.mod:i386-pc/nilfs2.mod +i386-pc/normal.mod:i386-pc/normal.mod +i386-pc/ntfs.mod:i386-pc/ntfs.mod +i386-pc/ntfscomp.mod:i386-pc/ntfscomp.mod +i386-pc/odc.mod:i386-pc/odc.mod +i386-pc/offsetio.mod:i386-pc/offsetio.mod +i386-pc/ohci.mod:i386-pc/ohci.mod +i386-pc/part_bsd.mod:i386-pc/part_bsd.mod +i386-pc/part_gpt.mod:i386-pc/part_gpt.mod +i386-pc/part_msdos.mod:i386-pc/part_msdos.mod +i386-pc/parttool.mod:i386-pc/parttool.mod +i386-pc/password.mod:i386-pc/password.mod +i386-pc/password_pbkdf2.mod:i386-pc/password_pbkdf2.mod +i386-pc/pata.mod:i386-pc/pata.mod +i386-pc/pbkdf2.mod:i386-pc/pbkdf2.mod +i386-pc/pci.mod:i386-pc/pci.mod +i386-pc/pcidump.mod:i386-pc/pcidump.mod +i386-pc/play.mod:i386-pc/play.mod +i386-pc/png.mod:i386-pc/png.mod +i386-pc/priority_queue.mod:i386-pc/priority_queue.mod +i386-pc/probe.mod:i386-pc/probe.mod +i386-pc/procfs.mod:i386-pc/procfs.mod +i386-pc/progress.mod:i386-pc/progress.mod +i386-pc/raid5rec.mod:i386-pc/raid5rec.mod +i386-pc/raid6rec.mod:i386-pc/raid6rec.mod +i386-pc/read.mod:i386-pc/read.mod +i386-pc/reboot.mod:i386-pc/reboot.mod +i386-pc/regexp.mod:i386-pc/regexp.mod +i386-pc/reiserfs.mod:i386-pc/reiserfs.mod +i386-pc/relocator.mod:i386-pc/relocator.mod +i386-pc/romfs.mod:i386-pc/romfs.mod +i386-pc/scsi.mod:i386-pc/scsi.mod +i386-pc/search.mod:i386-pc/search.mod +i386-pc/search_fs_file.mod:i386-pc/search_fs_file.mod +i386-pc/search_fs_uuid.mod:i386-pc/search_fs_uuid.mod +i386-pc/search_label.mod:i386-pc/search_label.mod +i386-pc/serial.mod:i386-pc/serial.mod +i386-pc/setjmp.mod:i386-pc/setjmp.mod +i386-pc/setpci.mod:i386-pc/setpci.mod +i386-pc/sfs.mod:i386-pc/sfs.mod +i386-pc/sleep.mod:i386-pc/sleep.mod +i386-pc/spkmodem.mod:i386-pc/spkmodem.mod +i386-pc/squash4.mod:i386-pc/squash4.mod +i386-pc/syslinuxcfg.mod:i386-pc/syslinuxcfg.mod +i386-pc/tar.mod:i386-pc/tar.mod +i386-pc/terminal.mod:i386-pc/terminal.mod +i386-pc/terminfo.mod:i386-pc/terminfo.mod +i386-pc/test.mod:i386-pc/test.mod +i386-pc/testload.mod:i386-pc/testload.mod +i386-pc/testspeed.mod:i386-pc/testspeed.mod +i386-pc/tftp.mod:i386-pc/tftp.mod +i386-pc/tga.mod:i386-pc/tga.mod +i386-pc/time.mod:i386-pc/time.mod +i386-pc/tr.mod:i386-pc/tr.mod +i386-pc/trig.mod:i386-pc/trig.mod +i386-pc/true.mod:i386-pc/true.mod +i386-pc/udf.mod:i386-pc/udf.mod +i386-pc/ufs1.mod:i386-pc/ufs1.mod +i386-pc/ufs1_be.mod:i386-pc/ufs1_be.mod +i386-pc/ufs2.mod:i386-pc/ufs2.mod +i386-pc/uhci.mod:i386-pc/uhci.mod +i386-pc/usb.mod:i386-pc/usb.mod +i386-pc/usb_keyboard.mod:i386-pc/usb_keyboard.mod +i386-pc/usbms.mod:i386-pc/usbms.mod +i386-pc/usbserial_common.mod:i386-pc/usbserial_common.mod +i386-pc/usbserial_ftdi.mod:i386-pc/usbserial_ftdi.mod +i386-pc/usbserial_pl2303.mod:i386-pc/usbserial_pl2303.mod +i386-pc/usbserial_usbdebug.mod:i386-pc/usbserial_usbdebug.mod +i386-pc/usbtest.mod:i386-pc/usbtest.mod +i386-pc/verify.mod:i386-pc/verify.mod +i386-pc/video_colors.mod:i386-pc/video_colors.mod +i386-pc/videoinfo.mod:i386-pc/videoinfo.mod +i386-pc/videotest.mod:i386-pc/videotest.mod +i386-pc/videotest_checksum.mod:i386-pc/videotest_checksum.mod +i386-pc/xfs.mod:i386-pc/xfs.mod +i386-pc/xzio.mod:i386-pc/xzio.mod +i386-pc/zfs.mod:i386-pc/zfs.mod diff --git a/projects/grub/configs/bios/modules-minimal b/projects/grub/configs/bios/modules-minimal new file mode 100644 index 00000000..ea936115 --- /dev/null +++ b/projects/grub/configs/bios/modules-minimal @@ -0,0 +1,8 @@ +biosdisk +cbmemc +ext2 +halt +part_bsd +part_gpt +reboot +verify diff --git a/projects/grub/configs/bios/platform b/projects/grub/configs/bios/platform new file mode 100644 index 00000000..581a7690 --- /dev/null +++ b/projects/grub/configs/bios/platform @@ -0,0 +1 @@ +pc diff --git a/projects/grub/configs/bios/prefix b/projects/grub/configs/bios/prefix new file mode 100644 index 00000000..48604ad8 --- /dev/null +++ b/projects/grub/configs/bios/prefix @@ -0,0 +1 @@ +(cbfsdisk)/fallback diff --git a/projects/grub/configs/bios/size b/projects/grub/configs/bios/size new file mode 100644 index 00000000..a7625603 --- /dev/null +++ b/projects/grub/configs/bios/size @@ -0,0 +1 @@ +160 diff --git a/projects/grub/configs/coreboot/arch b/projects/grub/configs/coreboot/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/grub/configs/coreboot/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/grub/configs/coreboot/config b/projects/grub/configs/coreboot/config new file mode 100644 index 00000000..e3792e94 --- /dev/null +++ b/projects/grub/configs/coreboot/config @@ -0,0 +1,4 @@ +set prefix=(cbfsdisk)/fallback + +set root=(cbfsdisk) +source (cbfsdisk)/fallback/grub.cfg diff --git a/projects/grub/configs/coreboot/format b/projects/grub/configs/coreboot/format new file mode 100644 index 00000000..0a387787 --- /dev/null +++ b/projects/grub/configs/coreboot/format @@ -0,0 +1 @@ +i386-coreboot diff --git a/projects/grub/configs/coreboot/install b/projects/grub/configs/coreboot/install new file mode 100644 index 00000000..a36a56e2 --- /dev/null +++ b/projects/grub/configs/coreboot/install @@ -0,0 +1,201 @@ +i386-coreboot/acpi.mod:i386-coreboot/acpi.mod +i386-coreboot/adler32.mod:i386-coreboot/adler32.mod +i386-coreboot/affs.mod:i386-coreboot/affs.mod +i386-coreboot/afs.mod:i386-coreboot/afs.mod +i386-coreboot/ahci.mod:i386-coreboot/ahci.mod +i386-coreboot/all_video.mod:i386-coreboot/all_video.mod +i386-coreboot/archelp.mod:i386-coreboot/archelp.mod +i386-coreboot/ata.mod:i386-coreboot/ata.mod +i386-coreboot/at_keyboard.mod:i386-coreboot/at_keyboard.mod +i386-coreboot/backtrace.mod:i386-coreboot/backtrace.mod +i386-coreboot/bfs.mod:i386-coreboot/bfs.mod +i386-coreboot/bitmap.mod:i386-coreboot/bitmap.mod +i386-coreboot/bitmap_scale.mod:i386-coreboot/bitmap_scale.mod +i386-coreboot/boot.mod:i386-coreboot/boot.mod +i386-coreboot/bsd.mod:i386-coreboot/bsd.mod +i386-coreboot/btrfs.mod:i386-coreboot/btrfs.mod +i386-coreboot/cat.mod:i386-coreboot/cat.mod +i386-coreboot/cbfs.mod:i386-coreboot/cbfs.mod +i386-coreboot/cbls.mod:i386-coreboot/cbls.mod +i386-coreboot/cbmemc.mod:i386-coreboot/cbmemc.mod +i386-coreboot/cbtime.mod:i386-coreboot/cbtime.mod +i386-coreboot/chain.mod:i386-coreboot/chain.mod +i386-coreboot/cmosdump.mod:i386-coreboot/cmosdump.mod +i386-coreboot/cmostest.mod:i386-coreboot/cmostest.mod +i386-coreboot/cmp.mod:i386-coreboot/cmp.mod +i386-coreboot/configfile.mod:i386-coreboot/configfile.mod +i386-coreboot/cpio.mod:i386-coreboot/cpio.mod +i386-coreboot/cpio_be.mod:i386-coreboot/cpio_be.mod +i386-coreboot/cpuid.mod:i386-coreboot/cpuid.mod +i386-coreboot/crc64.mod:i386-coreboot/crc64.mod +i386-coreboot/crypto.mod:i386-coreboot/crypto.mod +i386-coreboot/cryptodisk.mod:i386-coreboot/cryptodisk.mod +i386-coreboot/cs5536.mod:i386-coreboot/cs5536.mod +i386-coreboot/date.mod:i386-coreboot/date.mod +i386-coreboot/datehook.mod:i386-coreboot/datehook.mod +i386-coreboot/datetime.mod:i386-coreboot/datetime.mod +i386-coreboot/disk.mod:i386-coreboot/disk.mod +i386-coreboot/diskfilter.mod:i386-coreboot/diskfilter.mod +i386-coreboot/div_test.mod:i386-coreboot/div_test.mod +i386-coreboot/echo.mod:i386-coreboot/echo.mod +i386-coreboot/efiemu.mod:i386-coreboot/efiemu.mod +i386-coreboot/ehci.mod:i386-coreboot/ehci.mod +i386-coreboot/elf.mod:i386-coreboot/elf.mod +i386-coreboot/eval.mod:i386-coreboot/eval.mod +i386-coreboot/exfat.mod:i386-coreboot/exfat.mod +i386-coreboot/ext2.mod:i386-coreboot/ext2.mod +i386-coreboot/extcmd.mod:i386-coreboot/extcmd.mod +i386-coreboot/fat.mod:i386-coreboot/fat.mod +i386-coreboot/file.mod:i386-coreboot/file.mod +i386-coreboot/fshelp.mod:i386-coreboot/fshelp.mod +i386-coreboot/gcry_arcfour.mod:i386-coreboot/gcry_arcfour.mod +i386-coreboot/gcry_blowfish.mod:i386-coreboot/gcry_blowfish.mod +i386-coreboot/gcry_camellia.mod:i386-coreboot/gcry_camellia.mod +i386-coreboot/gcry_cast5.mod:i386-coreboot/gcry_cast5.mod +i386-coreboot/gcry_crc.mod:i386-coreboot/gcry_crc.mod +i386-coreboot/gcry_des.mod:i386-coreboot/gcry_des.mod +i386-coreboot/gcry_dsa.mod:i386-coreboot/gcry_dsa.mod +i386-coreboot/gcry_idea.mod:i386-coreboot/gcry_idea.mod +i386-coreboot/gcry_md4.mod:i386-coreboot/gcry_md4.mod +i386-coreboot/gcry_md5.mod:i386-coreboot/gcry_md5.mod +i386-coreboot/gcry_rfc2268.mod:i386-coreboot/gcry_rfc2268.mod +i386-coreboot/gcry_rijndael.mod:i386-coreboot/gcry_rijndael.mod +i386-coreboot/gcry_rmd160.mod:i386-coreboot/gcry_rmd160.mod +i386-coreboot/gcry_rsa.mod:i386-coreboot/gcry_rsa.mod +i386-coreboot/gcry_seed.mod:i386-coreboot/gcry_seed.mod +i386-coreboot/gcry_serpent.mod:i386-coreboot/gcry_serpent.mod +i386-coreboot/gcry_sha1.mod:i386-coreboot/gcry_sha1.mod +i386-coreboot/gcry_sha256.mod:i386-coreboot/gcry_sha256.mod +i386-coreboot/gcry_sha512.mod:i386-coreboot/gcry_sha512.mod +i386-coreboot/gcry_tiger.mod:i386-coreboot/gcry_tiger.mod +i386-coreboot/gcry_twofish.mod:i386-coreboot/gcry_twofish.mod +i386-coreboot/gcry_whirlpool.mod:i386-coreboot/gcry_whirlpool.mod +i386-coreboot/gettext.mod:i386-coreboot/gettext.mod +i386-coreboot/gfxmenu.mod:i386-coreboot/gfxmenu.mod +i386-coreboot/gfxterm_background.mod:i386-coreboot/gfxterm_background.mod +i386-coreboot/gfxterm_menu.mod:i386-coreboot/gfxterm_menu.mod +i386-coreboot/gptsync.mod:i386-coreboot/gptsync.mod +i386-coreboot/gzio.mod:i386-coreboot/gzio.mod +i386-coreboot/halt.mod:i386-coreboot/halt.mod +i386-coreboot/hashsum.mod:i386-coreboot/hashsum.mod +i386-coreboot/hdparm.mod:i386-coreboot/hdparm.mod +i386-coreboot/help.mod:i386-coreboot/help.mod +i386-coreboot/hexdump.mod:i386-coreboot/hexdump.mod +i386-coreboot/hfs.mod:i386-coreboot/hfs.mod +i386-coreboot/hfsplus.mod:i386-coreboot/hfsplus.mod +i386-coreboot/http.mod:i386-coreboot/http.mod +i386-coreboot/iorw.mod:i386-coreboot/iorw.mod +i386-coreboot/iso9660.mod:i386-coreboot/iso9660.mod +i386-coreboot/jfs.mod:i386-coreboot/jfs.mod +i386-coreboot/jpeg.mod:i386-coreboot/jpeg.mod +i386-coreboot/keystatus.mod:i386-coreboot/keystatus.mod +i386-coreboot/linux.mod:i386-coreboot/linux.mod +i386-coreboot/linux16.mod:i386-coreboot/linux16.mod +i386-coreboot/loadenv.mod:i386-coreboot/loadenv.mod +i386-coreboot/loopback.mod:i386-coreboot/loopback.mod +i386-coreboot/ls.mod:i386-coreboot/ls.mod +i386-coreboot/lsacpi.mod:i386-coreboot/lsacpi.mod +i386-coreboot/lsmmap.mod:i386-coreboot/lsmmap.mod +i386-coreboot/lspci.mod:i386-coreboot/lspci.mod +i386-coreboot/luks.mod:i386-coreboot/luks.mod +i386-coreboot/lvm.mod:i386-coreboot/lvm.mod +i386-coreboot/lzopio.mod:i386-coreboot/lzopio.mod +i386-coreboot/mda_text.mod:i386-coreboot/mda_text.mod +i386-coreboot/mdraid09.mod:i386-coreboot/mdraid09.mod +i386-coreboot/mdraid09_be.mod:i386-coreboot/mdraid09_be.mod +i386-coreboot/mdraid1x.mod:i386-coreboot/mdraid1x.mod +i386-coreboot/memdisk.mod:i386-coreboot/memdisk.mod +i386-coreboot/memrw.mod:i386-coreboot/memrw.mod +i386-coreboot/minicmd.mod:i386-coreboot/minicmd.mod +i386-coreboot/minix.mod:i386-coreboot/minix.mod +i386-coreboot/minix2.mod:i386-coreboot/minix2.mod +i386-coreboot/minix2_be.mod:i386-coreboot/minix2_be.mod +i386-coreboot/minix3.mod:i386-coreboot/minix3.mod +i386-coreboot/minix3_be.mod:i386-coreboot/minix3_be.mod +i386-coreboot/minix_be.mod:i386-coreboot/minix_be.mod +i386-coreboot/mmap.mod:i386-coreboot/mmap.mod +i386-coreboot/morse.mod:i386-coreboot/morse.mod +i386-coreboot/mpi.mod:i386-coreboot/mpi.mod +i386-coreboot/msdospart.mod:i386-coreboot/msdospart.mod +i386-coreboot/multiboot.mod:i386-coreboot/multiboot.mod +i386-coreboot/multiboot2.mod:i386-coreboot/multiboot2.mod +i386-coreboot/nativedisk.mod:i386-coreboot/nativedisk.mod +i386-coreboot/net.mod:i386-coreboot/net.mod +i386-coreboot/newc.mod:i386-coreboot/newc.mod +i386-coreboot/nilfs2.mod:i386-coreboot/nilfs2.mod +i386-coreboot/normal.mod:i386-coreboot/normal.mod +i386-coreboot/ntfs.mod:i386-coreboot/ntfs.mod +i386-coreboot/ntfscomp.mod:i386-coreboot/ntfscomp.mod +i386-coreboot/odc.mod:i386-coreboot/odc.mod +i386-coreboot/offsetio.mod:i386-coreboot/offsetio.mod +i386-coreboot/ohci.mod:i386-coreboot/ohci.mod +i386-coreboot/part_bsd.mod:i386-coreboot/part_bsd.mod +i386-coreboot/part_gpt.mod:i386-coreboot/part_gpt.mod +i386-coreboot/part_msdos.mod:i386-coreboot/part_msdos.mod +i386-coreboot/parttool.mod:i386-coreboot/parttool.mod +i386-coreboot/password.mod:i386-coreboot/password.mod +i386-coreboot/password_pbkdf2.mod:i386-coreboot/password_pbkdf2.mod +i386-coreboot/pata.mod:i386-coreboot/pata.mod +i386-coreboot/pbkdf2.mod:i386-coreboot/pbkdf2.mod +i386-coreboot/pci.mod:i386-coreboot/pci.mod +i386-coreboot/pcidump.mod:i386-coreboot/pcidump.mod +i386-coreboot/play.mod:i386-coreboot/play.mod +i386-coreboot/png.mod:i386-coreboot/png.mod +i386-coreboot/priority_queue.mod:i386-coreboot/priority_queue.mod +i386-coreboot/probe.mod:i386-coreboot/probe.mod +i386-coreboot/procfs.mod:i386-coreboot/procfs.mod +i386-coreboot/progress.mod:i386-coreboot/progress.mod +i386-coreboot/raid5rec.mod:i386-coreboot/raid5rec.mod +i386-coreboot/raid6rec.mod:i386-coreboot/raid6rec.mod +i386-coreboot/read.mod:i386-coreboot/read.mod +i386-coreboot/reboot.mod:i386-coreboot/reboot.mod +i386-coreboot/regexp.mod:i386-coreboot/regexp.mod +i386-coreboot/reiserfs.mod:i386-coreboot/reiserfs.mod +i386-coreboot/relocator.mod:i386-coreboot/relocator.mod +i386-coreboot/romfs.mod:i386-coreboot/romfs.mod +i386-coreboot/scsi.mod:i386-coreboot/scsi.mod +i386-coreboot/search.mod:i386-coreboot/search.mod +i386-coreboot/search_fs_file.mod:i386-coreboot/search_fs_file.mod +i386-coreboot/search_fs_uuid.mod:i386-coreboot/search_fs_uuid.mod +i386-coreboot/search_label.mod:i386-coreboot/search_label.mod +i386-coreboot/serial.mod:i386-coreboot/serial.mod +i386-coreboot/setjmp.mod:i386-coreboot/setjmp.mod +i386-coreboot/setpci.mod:i386-coreboot/setpci.mod +i386-coreboot/sfs.mod:i386-coreboot/sfs.mod +i386-coreboot/sleep.mod:i386-coreboot/sleep.mod +i386-coreboot/spkmodem.mod:i386-coreboot/spkmodem.mod +i386-coreboot/squash4.mod:i386-coreboot/squash4.mod +i386-coreboot/syslinuxcfg.mod:i386-coreboot/syslinuxcfg.mod +i386-coreboot/tar.mod:i386-coreboot/tar.mod +i386-coreboot/terminal.mod:i386-coreboot/terminal.mod +i386-coreboot/terminfo.mod:i386-coreboot/terminfo.mod +i386-coreboot/test.mod:i386-coreboot/test.mod +i386-coreboot/testload.mod:i386-coreboot/testload.mod +i386-coreboot/testspeed.mod:i386-coreboot/testspeed.mod +i386-coreboot/tftp.mod:i386-coreboot/tftp.mod +i386-coreboot/tga.mod:i386-coreboot/tga.mod +i386-coreboot/time.mod:i386-coreboot/time.mod +i386-coreboot/tr.mod:i386-coreboot/tr.mod +i386-coreboot/trig.mod:i386-coreboot/trig.mod +i386-coreboot/true.mod:i386-coreboot/true.mod +i386-coreboot/udf.mod:i386-coreboot/udf.mod +i386-coreboot/ufs1.mod:i386-coreboot/ufs1.mod +i386-coreboot/ufs1_be.mod:i386-coreboot/ufs1_be.mod +i386-coreboot/ufs2.mod:i386-coreboot/ufs2.mod +i386-coreboot/uhci.mod:i386-coreboot/uhci.mod +i386-coreboot/usb.mod:i386-coreboot/usb.mod +i386-coreboot/usb_keyboard.mod:i386-coreboot/usb_keyboard.mod +i386-coreboot/usbms.mod:i386-coreboot/usbms.mod +i386-coreboot/usbserial_common.mod:i386-coreboot/usbserial_common.mod +i386-coreboot/usbserial_ftdi.mod:i386-coreboot/usbserial_ftdi.mod +i386-coreboot/usbserial_pl2303.mod:i386-coreboot/usbserial_pl2303.mod +i386-coreboot/usbserial_usbdebug.mod:i386-coreboot/usbserial_usbdebug.mod +i386-coreboot/usbtest.mod:i386-coreboot/usbtest.mod +i386-coreboot/verify.mod:i386-coreboot/verify.mod +i386-coreboot/video_colors.mod:i386-coreboot/video_colors.mod +i386-coreboot/videoinfo.mod:i386-coreboot/videoinfo.mod +i386-coreboot/videotest.mod:i386-coreboot/videotest.mod +i386-coreboot/videotest_checksum.mod:i386-coreboot/videotest_checksum.mod +i386-coreboot/xfs.mod:i386-coreboot/xfs.mod +i386-coreboot/xzio.mod:i386-coreboot/xzio.mod +i386-coreboot/zfs.mod:i386-coreboot/zfs.mod diff --git a/projects/grub/configs/coreboot/modules-minimal b/projects/grub/configs/coreboot/modules-minimal new file mode 100644 index 00000000..310aef86 --- /dev/null +++ b/projects/grub/configs/coreboot/modules-minimal @@ -0,0 +1,11 @@ +ahci +cbmemc +ehci +ext2 +halt +part_bsd +part_gpt +pata +reboot +usbms +verify diff --git a/projects/grub/configs/coreboot/platform b/projects/grub/configs/coreboot/platform new file mode 100644 index 00000000..9e67dee0 --- /dev/null +++ b/projects/grub/configs/coreboot/platform @@ -0,0 +1 @@ +coreboot diff --git a/projects/grub/configs/fonts/font-file b/projects/grub/configs/fonts/font-file new file mode 100644 index 00000000..adae2139 --- /dev/null +++ b/projects/grub/configs/fonts/font-file @@ -0,0 +1 @@ +DejaVuSansMono.ttf diff --git a/projects/grub/configs/fonts/font-project b/projects/grub/configs/fonts/font-project new file mode 100644 index 00000000..34a8df95 --- /dev/null +++ b/projects/grub/configs/fonts/font-project @@ -0,0 +1 @@ +dejavu-fonts diff --git a/projects/grub/configs/install b/projects/grub/configs/install new file mode 100644 index 00000000..818dfa91 --- /dev/null +++ b/projects/grub/configs/install @@ -0,0 +1,13 @@ +grub2:grub2 +fonts/DejaVuSansMono.pf2:fonts/DejaVuSansMono.pf2 +keymaps/deqwertz.gkb:keymaps/deqwertz.gkb +keymaps/esqwerty.gkb:keymaps/esqwerty.gkb +keymaps/frazerty.gkb:keymaps/frazerty.gkb +keymaps/frdvbepo.gkb:keymaps/frdvbepo.gkb +keymaps/itqwerty.gkb:keymaps/itqwerty.gkb +keymaps/jaqwerty.gkb:keymaps/jaqwerty.gkb +keymaps/svqwerty.gkb:keymaps/svqwerty.gkb +keymaps/ukdvorak.gkb:keymaps/ukdvorak.gkb +keymaps/ukqwerty.gkb:keymaps/ukqwerty.gkb +keymaps/usdvorak.gkb:keymaps/usdvorak.gkb +keymaps/usqwerty.gkb:keymaps/usqwerty.gkb diff --git a/projects/grub/configs/keymaps/deqwertz b/projects/grub/configs/keymaps/deqwertz new file mode 100644 index 00000000..030dd7b7 --- /dev/null +++ b/projects/grub/configs/keymaps/deqwertz @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a7 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+00a4 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape +keycode 10 = U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 11 = U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +U+00df U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_question Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +keycode 13 = dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek dead_acute dead_grave dead_cedilla dead_ogonek +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+007a +U+005a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+2190 U+00a5 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00fc +U+00dc dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +keycode 27 = U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002b U+002a U+007e U+00af VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_plus Meta_asterisk Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+017f +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+006a +U+004a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+006a +U+004a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+006a +U+004a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+004a +U+006a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+004a +U+006a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+004a +U+006a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +U+004a +U+006a U+0323 U+002e Linefeed Linefeed Linefeed Compose Meta_j Meta_J Meta_j Meta_period Meta_Linefeed Meta_Linefeed Meta_Linefeed Compose +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f6 +U+00d6 dead_doubleacute U+0323 dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +keycode 40 = +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00e4 +U+00c4 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +keycode 41 = dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex U+00b0 U+2032 U+2033 dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex dead_circumflex +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve U+0023 U+0027 U+2019 dead_breve Control_g Control_g dead_breve dead_breve Meta_numbersign Meta_apostrophe Meta_numbersign dead_breve Meta_Control_g Meta_Control_g dead_breve dead_breve +keycode 44 = +U+0079 +U+0059 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+00bb U+203a Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 45 = +U+0078 +U+0058 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00ab U+2039 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_X Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201e U+201a Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201c U+2018 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e U+201d U+2019 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+00b7 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 52 = U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose +keycode 53 = U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+2013 U+2014 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/esqwerty b/projects/grub/configs/keymaps/esqwerty new file mode 100644 index 00000000..5c770cce --- /dev/null +++ b/projects/grub/configs/keymaps/esqwerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+007c U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00b7 U+0023 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+007e U+0024 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_asciitilde Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape +keycode 10 = U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 11 = U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash U+0027 U+003f U+005c U+00bf Control_g Delete Control_backslash Control_backslash Meta_apostrophe Meta_question Meta_backslash Meta_backslash Meta_Control_g Meta_Delete Meta_Control_backslash Meta_Control_backslash +keycode 13 = U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde U+00a1 U+00bf dead_tilde U+007e dead_tilde dead_tilde dead_tilde dead_tilde dead_tilde Meta_asciitilde dead_tilde Meta_asciitilde dead_tilde dead_tilde dead_tilde dead_tilde +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape dead_grave dead_circumflex U+005b U+002a dead_grave dead_circumflex Escape Escape dead_grave dead_circumflex Meta_bracketleft Meta_asterisk dead_grave dead_circumflex Meta_Escape Meta_Escape +keycode 27 = U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore U+002b U+002a U+005d U+005f Control_bracketright Control_underscore Control_bracketright Control_underscore Meta_plus Meta_asterisk Meta_bracketright Meta_underscore Meta_Control_bracketright Meta_Control_underscore Meta_Control_bracketright Meta_Control_underscore +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +U+00f1 +U+00d1 U+007e dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute Meta_asciitilde dead_doubleacute Meta_asciitilde dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute dead_doubleacute +keycode 40 = dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis U+007b U+007b dead_acute dead_diaeresis dead_acute dead_diaeresis dead_acute dead_diaeresis Meta_braceleft Meta_braceleft dead_acute dead_diaeresis dead_acute dead_diaeresis +keycode 41 = +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00ba +U+00aa U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +U+00e7 +U+00c7 U+007d dead_breve dead_breve dead_breve dead_breve dead_breve Meta_braceright dead_breve Meta_braceright dead_breve dead_breve dead_breve dead_breve dead_breve +keycode 44 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003b U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_semicolon Meta_comma Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 52 = U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose +keycode 53 = U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/frazerty b/projects/grub/configs/keymaps/frazerty new file mode 100644 index 00000000..ad7147af --- /dev/null +++ b/projects/grub/configs/keymaps/frazerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0026 U+0031 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_ampersand Meta_one Meta_ampersand Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = +U+00e9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00e9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00e9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00e9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00c9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00c9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00c9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +U+00c9 U+0032 U+007e U+215b nul nul nul nul Meta_two Meta_two Meta_asciitilde Meta_asciitilde Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0022 U+0033 U+0023 U+00a3 Escape Escape Escape Escape Meta_quotedbl Meta_three Meta_numbersign Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash U+0027 U+0034 U+007b U+0024 Control_g Control_backslash Control_g Control_backslash Meta_apostrophe Meta_four Meta_braceleft Meta_dollar Meta_Control_g Meta_Control_backslash Meta_Control_g Meta_Control_backslash +keycode 6 = U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape U+0028 U+0035 U+005b U+215c Control_bracketright Control_bracketright Escape Escape Meta_parenleft Meta_five Meta_bracketleft Meta_bracketleft Meta_Control_bracketright Meta_Control_bracketright Meta_Escape Meta_Escape +keycode 7 = U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+002d U+0036 U+007c U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_minus Meta_six Meta_bar Meta_bar Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = +U+00e8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00e8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00e8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00e8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00c8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00c8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00c8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +U+00c8 U+0037 U+0060 U+215e Control_underscore Control_underscore nul nul Meta_seven Meta_seven Meta_grave Meta_grave Meta_Control_underscore Meta_Control_underscore Meta_nul Meta_nul +keycode 9 = U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash U+005f U+0038 U+005c U+2122 Control_underscore Delete Control_backslash Control_backslash Meta_underscore Meta_eight Meta_backslash Meta_backslash Meta_Control_underscore Meta_Delete Meta_Control_backslash Meta_Control_backslash +keycode 10 = +U+00e7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00e7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00e7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00e7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00c7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00c7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00c7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +U+00c7 U+0039 U+005e U+00b1 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_nine Meta_nine Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 11 = +U+00e0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00e0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00e0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00e0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00c0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00c0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00c0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +U+00c0 U+0030 U+0040 U+00b0 nul nul nul nul Meta_zero Meta_zero Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +keycode 12 = U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0029 U+00b0 U+005d U+00bf Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_parenright Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 13 = U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+003d U+002b U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_equal Meta_plus Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 17 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 18 = +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis U+002a dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis dead_circumflex dead_diaeresis dead_diaeresis Meta_asterisk dead_circumflex dead_diaeresis dead_diaeresis dead_diaeresis +keycode 27 = U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0024 U+00a3 U+00a4 U+005f Control_underscore Control_underscore Control_underscore Control_underscore Meta_dollar Meta_dollar Meta_dollar Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 40 = +U+00f9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00f9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00f9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00f9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00d9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00d9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00d9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +U+00d9 U+0025 dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron Meta_percent Meta_percent dead_circumflex dead_caron dead_circumflex dead_caron dead_circumflex dead_caron +keycode 41 = U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00b2 U+007e U+00ac U+00ac VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_asciitilde Meta_asciitilde Meta_asciitilde Meta_asciitilde VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+002a +U+00b5 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+00b5 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+00b5 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+00b5 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+039c dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+039c dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+039c dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+002a +U+039c dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_asterisk Meta_asterisk dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +keycode 44 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute U+002c U+003f dead_acute dead_doubleacute Delete Delete dead_acute dead_doubleacute Meta_comma Meta_question dead_acute dead_doubleacute Meta_Delete Meta_Delete dead_acute dead_doubleacute +keycode 51 = U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose U+003b U+002e U+2500 U+00d7 Compose Compose Compose Compose Meta_semicolon Meta_period Meta_semicolon Meta_period Compose Compose Compose Compose +keycode 52 = U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002f U+00b7 U+00f7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_slash Meta_colon Meta_slash VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 53 = U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose U+0021 U+00a7 U+0323 U+002e Compose Compose Compose Compose Meta_exclam Meta_exclam Meta_exclam Meta_period Compose Compose Compose Compose +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/frdvbepo b/projects/grub/configs/keymaps/frdvbepo new file mode 100644 index 00000000..ac8cb76c --- /dev/null +++ b/projects/grub/configs/keymaps/frdvbepo @@ -0,0 +1,142 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one U+0022 U+0031 U+2014 U+201e U+0022 U+0031 U+2014 U+201e Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one Meta_quotedbl Meta_one +keycode 3 = U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less U+00ab U+0032 U+003c U+201c U+00ab U+0032 U+003c U+201c Meta_two Meta_two Meta_less Meta_less Meta_two Meta_two Meta_less Meta_less +keycode 4 = U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater U+00bb U+0033 U+003e U+201d U+00bb U+0033 U+003e U+201d Meta_three Meta_three Meta_greater Meta_greater Meta_three Meta_three Meta_greater Meta_greater +keycode 5 = U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape U+0028 U+0034 U+005b U+2264 Escape U+0034 Escape Escape Meta_parenleft Meta_four Meta_bracketleft Meta_bracketleft Meta_Escape Meta_four Meta_Escape Meta_Escape +keycode 6 = U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright U+0029 U+0035 U+005d U+2265 Control_bracketright U+0035 Control_bracketright Control_bracketright Meta_parenright Meta_five Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_five Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum U+0040 U+0036 U+005e U+005e nul nul Control_asciicircum Control_asciicircum Meta_at Meta_six Meta_asciicircum Meta_asciicircum Meta_nul Meta_nul Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven U+002b U+0037 U+00b1 U+00ac U+002b U+0037 U+00b1 U+00ac Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven Meta_plus Meta_seven +keycode 9 = U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight U+002d U+0038 U+2212 U+00bc U+002d U+0038 U+2212 U+00bc Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight Meta_minus Meta_eight +keycode 10 = U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine U+002f U+0039 U+00f7 U+00bd U+002f U+0039 U+00f7 U+00bd Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine Meta_slash Meta_nine +keycode 11 = U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero U+002a U+0030 U+00d7 U+00be U+002a U+0030 U+00d7 U+00be Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero Meta_asterisk Meta_zero +keycode 12 = U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 U+003d U+00b0 U+2260 U+2032 U+003d U+00b0 U+2260 U+2032 Meta_equal Meta_equal Meta_equal U+2032 Meta_equal Meta_equal Meta_equal U+2032 +keycode 13 = U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0025 U+0060 U+2030 U+2033 nul nul U+2030 nul Meta_percent Meta_grave Meta_percent Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0062 +U+0042 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0062 +U+0042 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0062 +U+0042 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0062 +U+0042 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0042 +U+0062 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0042 +U+0062 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0042 +U+0062 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +U+0042 +U+0062 U+007c U+00a6 Control_b Control_b Control_backslash Control_backslash Meta_b Meta_B Meta_bar Meta_bar Meta_Control_b Meta_Control_b Meta_Control_backslash Meta_Control_backslash +keycode 17 = +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00e9 +U+00c9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +U+00c9 +U+00e9 dead_acute dead_doubleacute +keycode 18 = +U+0070 +U+0050 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 U+0026 U+00a7 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_ampersand Meta_ampersand Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 19 = +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 20 = +U+00e8 +U+00c8 dead_grave U+0060 +U+00e8 nul nul nul +U+00e8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00e8 +U+00c8 dead_grave U+0060 +U+00e8 nul nul nul +U+00e8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00e8 +U+00c8 dead_grave U+0060 +U+00e8 nul nul nul +U+00e8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00e8 +U+00c8 dead_grave U+0060 +U+00e8 nul nul nul +U+00e8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00c8 +U+00e8 dead_grave U+0060 +U+00c8 nul nul nul +U+00c8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00c8 +U+00e8 dead_grave U+0060 +U+00c8 nul nul nul +U+00c8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00c8 +U+00e8 dead_grave U+0060 +U+00c8 nul nul nul +U+00c8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +U+00c8 +U+00e8 dead_grave U+0060 +U+00c8 nul nul nul +U+00c8 Meta_grave Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +keycode 21 = dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam dead_circumflex U+0021 U+00a1 U+00a1 dead_circumflex U+0021 U+00a1 U+00a1 Meta_exclam Meta_exclam U+00a1 Meta_exclam Meta_exclam Meta_exclam U+00a1 Meta_exclam +keycode 22 = +U+0076 +U+0056 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 dead_caron dead_caron Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 23 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 24 = +U+006c +U+004c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c U+002d U+002d Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_minus Meta_minus Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 25 = +U+006a +U+004a +U+0133 +U+0132 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+0133 +U+0132 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+0133 +U+0132 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+0133 +U+0132 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+0132 +U+0133 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+0132 +U+0133 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+0132 +U+0133 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+0132 +U+0133 Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 26 = +U+007a +U+005a +U+0259 +U+018f Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+0259 +U+018f Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+0259 +U+018f Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+0259 +U+018f Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+018f +U+0259 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+018f +U+0259 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+018f +U+0259 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+018f +U+0259 Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_Z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 27 = +U+0077 +U+0057 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 dead_breve dead_breve Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0075 +U+0055 +U+00f9 +U+00d9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+00f9 +U+00d9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+00f9 +U+00d9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+00f9 +U+00d9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+00d9 +U+00f9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+00d9 +U+00f9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+00d9 +U+00f9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+00d9 +U+00f9 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 32 = +U+0069 +U+0049 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0069 +U+0049 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0069 +U+0049 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0069 +U+0049 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0049 +U+0069 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0049 +U+0069 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0049 +U+0069 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +U+0049 +U+0069 dead_diaeresis U+002e Tab Tab Compose Compose Meta_i Meta_I Meta_period Meta_period Meta_Tab Meta_Tab Compose Compose +keycode 33 = +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+20ac Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 34 = U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon U+002c U+003b U+2019 U+031b U+002c U+003b U+2019 U+031b Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon Meta_comma Meta_semicolon +keycode 35 = +U+0063 +U+0043 U+00a9 +U+017f Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 +U+017f Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 +U+017f Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 +U+017f Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 +U+0053 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 +U+0053 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 +U+0053 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 +U+0053 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 36 = +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 37 = +U+0073 +U+0053 +U+00df +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df +U+1e9e Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+00df Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+00df Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+00df Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+00df Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 38 = +U+0072 +U+0052 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+2122 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 39 = +U+006e +U+004e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e dead_tilde dead_tilde Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 40 = +U+006d +U+004d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+006d +U+004d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+006d +U+004d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+006d +U+004d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+004d +U+006d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+004d +U+006d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+004d +U+006d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +U+004d +U+006d U+005f +U+00ba Return Return Control_underscore Control_underscore Meta_m Meta_M Meta_underscore Meta_underscore Meta_Control_m Meta_Control_m Meta_Control_underscore Meta_Control_underscore +keycode 41 = U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign U+0024 U+0023 U+2013 U+00b6 U+0024 U+0023 U+2013 U+00b6 Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign Meta_dollar Meta_numbersign +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00e7 +U+00c7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +U+00c7 +U+00e7 dead_cedilla dead_cedilla +keycode 44 = +U+00e0 +U+00c0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00e0 +U+00c0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00e0 +U+00c0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00e0 +U+00c0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00c0 +U+00e0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00c0 +U+00e0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00c0 +U+00e0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +U+00c0 +U+00e0 U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_backslash Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 45 = +U+0079 +U+0059 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0079 +U+0059 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0079 +U+0059 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0079 +U+0059 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0059 +U+0079 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0059 +U+0079 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0059 +U+0079 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +U+0059 +U+0079 U+007b U+2018 Control_y Control_y Escape Escape Meta_y Meta_Y Meta_braceleft Meta_braceleft Meta_Control_y Meta_Control_y Meta_Escape Meta_Escape +keycode 46 = +U+0078 +U+0058 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0078 +U+0058 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0078 +U+0058 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0078 +U+0058 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0058 +U+0078 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0058 +U+0078 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0058 +U+0078 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +U+0058 +U+0078 U+007d U+2019 Control_x Control_x Control_bracketright Control_bracketright Meta_x Meta_X Meta_braceright Meta_braceright Meta_Control_x Meta_Control_x Meta_Control_bracketright Meta_Control_bracketright +keycode 47 = U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose U+002e U+003a U+2026 U+00b7 Compose Compose Compose U+00b7 Meta_period Meta_colon Meta_period Meta_colon Compose Compose Compose Compose +keycode 48 = +U+006b +U+004b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+006b +U+004b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+006b +U+004b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+006b +U+004b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+004b +U+006b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+004b +U+006b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+004b +U+006b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +U+004b +U+006b U+007e U+007e Control_k Control_k Control_asciicircum Control_asciicircum Meta_k Meta_K Meta_asciitilde Meta_asciitilde Meta_Control_k Meta_Control_k Meta_Control_asciicircum Meta_Control_asciicircum +keycode 49 = U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0027 U+003f U+00bf U+0309 Delete Delete U+00bf Delete Meta_apostrophe Meta_question Meta_apostrophe Meta_question Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 50 = +U+0071 +U+0051 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 U+00b0 U+0323 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_Q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +keycode 51 = +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 52 = +U+0068 +U+0048 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 U+2020 U+2021 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 53 = +U+0066 +U+0046 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 dead_ogonek +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 KP_Multiply KP_Multiply Hex_C U+00d7 KP_Multiply KP_Multiply U+00d7 U+00d7 KP_Multiply Hex_C U+00d7 U+00d7 U+22c5 U+22c5 U+22c5 U+22c5 +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore U+0020 U+00a0 U+005f U+202f nul nul Control_underscore Control_underscore Meta_space Meta_space Meta_underscore Meta_underscore Meta_nul Meta_nul Meta_Control_underscore Meta_Control_underscore +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 KP_7 KP_7 Hex_7 U+21d6 KP_7 KP_7 U+2196 U+21d6 Ascii_7 Hex_7 U+2196 U+21d6 KP_7 KP_7 U+2196 U+21d6 +keycode 72 = KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 KP_8 KP_8 Hex_8 U+21d1 KP_8 KP_8 U+2191 U+21d1 Ascii_8 Hex_8 U+2191 U+21d1 KP_8 KP_8 U+2191 U+21d1 +keycode 73 = KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 KP_9 KP_9 Hex_9 U+21d7 KP_9 KP_9 U+2197 U+21d7 Ascii_9 Hex_9 U+2197 U+21d7 KP_9 KP_9 U+2197 U+21d7 +keycode 74 = KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 KP_Subtract KP_Subtract Hex_D U+2212 KP_Subtract KP_Subtract U+2212 U+2212 KP_Subtract Hex_D U+2212 U+2212 U+2212 U+2212 U+2212 U+2212 +keycode 75 = KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 KP_4 KP_4 Hex_4 U+21d0 KP_4 KP_4 U+2190 U+21d0 Ascii_4 Hex_4 U+2190 U+21d0 KP_4 KP_4 U+2190 U+21d0 +keycode 76 = KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 KP_5 KP_5 Hex_5 U+21d4 KP_5 KP_5 U+2194 U+21d4 Ascii_5 Hex_5 U+2194 U+21d4 KP_5 KP_5 U+2194 U+21d4 +keycode 77 = KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 KP_6 KP_6 Hex_6 U+21d2 KP_6 KP_6 U+2192 U+21d2 Ascii_6 Hex_6 U+2192 U+21d2 KP_6 KP_6 U+2192 U+21d2 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add Meta_plus Hex_E Meta_plus Meta_plus KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 KP_1 KP_1 Hex_1 U+21d9 KP_1 KP_1 U+2199 U+21d9 Ascii_1 Hex_1 U+2199 U+21d9 KP_1 KP_1 U+2199 U+21d9 +keycode 80 = KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 KP_2 KP_2 Hex_2 U+21d3 KP_2 KP_2 U+2193 U+21d3 Ascii_2 Hex_2 U+2193 U+21d3 KP_2 KP_2 U+2193 U+21d3 +keycode 81 = KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 KP_3 KP_3 Hex_3 U+21d8 KP_3 KP_3 U+2198 U+21d8 Ascii_3 Hex_3 U+2198 U+21d8 KP_3 KP_3 U+2198 U+21d8 +keycode 82 = KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 KP_0 KP_0 Hex_0 U+21d5 KP_0 KP_0 U+2195 U+21d5 Ascii_0 Hex_0 U+2195 U+21d5 KP_0 KP_0 U+2195 U+21d5 +keycode 83 = KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose KP_Period KP_Period KP_Comma U+202f Compose Compose Boot Compose Meta_period Meta_period Meta_comma Meta_comma Boot Compose Boot Compose +keycode 84 = Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console Last_Console +keycode 86 = +U+00ea +U+00ca U+002f U+00a6 +U+00ea +U+00ca U+002f U+00a6 Meta_slash +U+00ca Meta_slash Meta_slash Meta_slash +U+00ca Meta_slash Meta_slash +U+00ea +U+00ca U+002f U+00a6 +U+00ea +U+00ca U+002f U+00a6 Meta_slash +U+00ca Meta_slash Meta_slash Meta_slash +U+00ca Meta_slash Meta_slash +U+00ea +U+00ca U+002f U+00a6 +U+00ea +U+00ca U+002f U+00a6 Meta_slash +U+00ca Meta_slash Meta_slash Meta_slash +U+00ca Meta_slash Meta_slash +U+00ea +U+00ca U+002f U+00a6 +U+00ea +U+00ca U+002f U+00a6 Meta_slash +U+00ca Meta_slash Meta_slash Meta_slash +U+00ca Meta_slash Meta_slash +U+00ca +U+00ea U+002f U+00a6 +U+00ca +U+00ea U+002f U+00a6 Meta_slash +U+00ea Meta_slash Meta_slash Meta_slash +U+00ea Meta_slash Meta_slash +U+00ca +U+00ea U+002f U+00a6 +U+00ca +U+00ea U+002f U+00a6 Meta_slash +U+00ea Meta_slash Meta_slash Meta_slash +U+00ea Meta_slash Meta_slash +U+00ca +U+00ea U+002f U+00a6 +U+00ca +U+00ea U+002f U+00a6 Meta_slash +U+00ea Meta_slash Meta_slash Meta_slash +U+00ea Meta_slash Meta_slash +U+00ca +U+00ea U+002f U+00a6 +U+00ca +U+00ea U+002f U+00a6 Meta_slash +U+00ea Meta_slash Meta_slash Meta_slash +U+00ea Meta_slash Meta_slash +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break Pause Pause Pause Pause Break Break Break Break +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Last_Console Last_Console Last_Console Last_Console Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 KP_Divide KP_Divide Hex_B U+00f7 KP_Divide KP_Divide U+00f7 U+00f7 KP_Divide Hex_B U+00f7 U+00f7 U+2215 U+2215 U+2215 U+2215 +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 101 = Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break Break +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 127 = VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# The following is an example how to make Alt+j switch to to the next +# console and Alt+k switch to the previous console. + +# Uncomment the following lines for Linux. Notice that everything is +# replicated for all possible values of the modifiers shiftl, shiftr +# and ctrll (shiftl and shiftr are used for groups 1..4 of XKB and +# ctrll is used to fix the broken CapsLock when Linux console is in +# Unicode mode). + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console +# +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + +# For the same result on FreeBSD uncomment the following lines: + +# 036 'j' 'J' nl nl nscr nscr nl nl C +# 037 'k' 'K' vt vt pscr pscr nl nl C diff --git a/projects/grub/configs/keymaps/itqwerty b/projects/grub/configs/keymaps/itqwerty new file mode 100644 index 00000000..6c53aac3 --- /dev/null +++ b/projects/grub/configs/keymaps/itqwerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute U+0032 U+0022 U+00b2 dead_doubleacute nul nul nul dead_doubleacute Meta_two Meta_quotedbl Meta_two dead_doubleacute Meta_nul Meta_nul Meta_nul dead_doubleacute +keycode 4 = U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde U+0033 U+00a3 U+00b3 dead_tilde Escape Escape Escape dead_tilde Meta_three Meta_three Meta_three dead_tilde Meta_Escape Meta_Escape Meta_Escape dead_tilde +keycode 5 = U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+00bc U+215b Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00ac U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape +keycode 10 = U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 11 = U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek U+0030 U+003d U+007d dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek Meta_zero Meta_equal Meta_braceright dead_ogonek dead_ogonek dead_ogonek dead_ogonek dead_ogonek +keycode 12 = U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul U+0027 U+003f U+0060 U+00bf Control_g Delete nul nul Meta_apostrophe Meta_question Meta_grave Meta_grave Meta_Control_g Meta_Delete Meta_nul Meta_nul +keycode 13 = +U+00ec U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00ec U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00ec U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00ec U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00cc U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00cc U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00cc U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +U+00cc U+005e U+007e dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_asciicircum Meta_asciicircum Meta_asciitilde dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = +U+00e8 +U+00e9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00e8 +U+00e9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00e8 +U+00e9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00e8 +U+00e9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00c8 +U+00c9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00c8 +U+00c9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00c8 +U+00c9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +U+00c8 +U+00c9 U+005b U+007b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_braceleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 27 = U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+002b U+002a U+005d U+007d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_plus Meta_asterisk Meta_bracketright Meta_braceright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = +U+00f2 +U+00e7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00f2 +U+00e7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00f2 +U+00e7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00f2 +U+00e7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00d2 +U+00c7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00d2 +U+00c7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00d2 +U+00c7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +U+00d2 +U+00c7 U+0040 dead_cedilla nul dead_cedilla nul dead_cedilla Meta_at dead_cedilla Meta_at dead_cedilla Meta_nul dead_cedilla Meta_nul dead_cedilla +keycode 40 = +U+00e0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c0 U+00b0 U+0023 U+002a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_numbersign Meta_asterisk Meta_numbersign Meta_asterisk VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 41 = U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+00ac U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = +U+00f9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00f9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00f9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00f9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00d9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00d9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00d9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +U+00d9 U+00a7 dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +keycode 44 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+00f1 +U+00d1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+00f1 +U+00d1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+00f1 +U+00d1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+00f1 +U+00d1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+00d1 +U+00f1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+00d1 +U+00f1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+00d1 +U+00f1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+00d1 +U+00f1 Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute U+002c U+003b dead_acute U+00d7 dead_acute dead_acute dead_acute dead_acute Meta_comma Meta_semicolon dead_acute dead_acute dead_acute dead_acute dead_acute dead_acute +keycode 52 = U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis U+002e U+003a U+00b7 dead_diaeresis Compose Compose Compose dead_diaeresis Meta_period Meta_colon Meta_period dead_diaeresis Compose Compose Compose dead_diaeresis +keycode 53 = U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+005f U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_underscore Meta_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+00ab U+00bb VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_less Meta_greater VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/jaqwerty b/projects/grub/configs/keymaps/jaqwerty new file mode 100644 index 00000000..eb48b69b --- /dev/null +++ b/projects/grub/configs/keymaps/jaqwerty @@ -0,0 +1,131 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore U+0037 U+0027 U+0037 U+0037 Control_underscore Control_g Control_underscore Control_underscore Meta_seven Meta_apostrophe Meta_seven Meta_seven Meta_Control_underscore Meta_Control_g Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+0028 U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_parenleft Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 10 = U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0029 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenright Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 11 = U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+007e U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_asciitilde Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002d U+003d U+002d U+002d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_minus Meta_equal Meta_minus Meta_minus VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 13 = U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+005e U+007e U+005e U+005e Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_asciicircum Meta_asciitilde Meta_asciicircum Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +keycode 17 = +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0040 U+0060 U+0040 U+0040 nul nul nul nul Meta_at Meta_grave Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +keycode 27 = U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+002b U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_plus Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 40 = U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003a U+002a U+003a U+003a VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_colon Meta_asterisk Meta_colon Meta_colon VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 44 = +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 52 = U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose +keycode 53 = U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 124 = U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +keycode 89 = U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+005c U+005f U+005c U+005c Control_backslash Control_underscore Control_backslash Control_backslash Meta_backslash Meta_underscore Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/svqwerty b/projects/grub/configs/keymaps/svqwerty new file mode 100644 index 00000000..3ee5bc96 --- /dev/null +++ b/projects/grub/configs/keymaps/svqwerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00a1 U+00b9 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0040 U+00b2 nul nul nul nul Meta_two Meta_quotedbl Meta_at Meta_at Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+00a3 U+00b3 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_numbersign Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+00a4 U+0024 U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_four Meta_dollar Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+20ac U+00a2 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+0026 U+00a5 U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_ampersand Meta_six Meta_ampersand Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+002f U+007b U+00f7 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_slash Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+0028 U+005b U+00ab Delete Delete Escape Escape Meta_eight Meta_parenleft Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape +keycode 10 = U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0029 U+005d U+00bb Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 11 = U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+003d U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_equal Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash U+002b U+003f U+005c U+00bf Delete Delete Control_backslash Control_backslash Meta_plus Meta_question Meta_backslash Meta_backslash Meta_Delete Meta_Delete Meta_Control_backslash Meta_Control_backslash +keycode 13 = dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave U+00b1 U+00ac dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave dead_acute dead_grave +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 U+20ac U+00a2 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00ae U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+00fe +U+00de Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+00de +U+00fe Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+0153 +U+0152 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+0152 +U+0153 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00e5 +U+00c5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +U+00c5 +U+00e5 dead_diaeresis U+002a dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis Meta_asterisk dead_diaeresis Meta_asterisk dead_diaeresis dead_diaeresis dead_diaeresis dead_diaeresis +keycode 27 = dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron dead_diaeresis dead_circumflex dead_tilde dead_caron +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00aa +U+00ba Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00f6 +U+00d6 +U+00f8 +U+00d8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00d6 +U+00f6 +U+00d8 +U+00f8 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 40 = +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00e4 +U+00c4 +U+00e6 +U+00c6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +U+00c4 +U+00e4 +U+00c6 +U+00e6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 41 = U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+00a7 U+00bd U+00b6 U+00be VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+002a U+0027 U+00d7 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_asterisk Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 44 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a9 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+002c U+003b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_comma Meta_semicolon dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek +keycode 52 = U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose U+002e U+003a U+00b7 U+002e Compose Compose Compose Compose Meta_period Meta_colon Meta_period Meta_period Compose Compose Compose Compose +keycode 53 = U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose U+002d U+005f U+0323 U+002e Control_underscore Control_underscore Compose Compose Meta_minus Meta_underscore Meta_minus Meta_period Meta_Control_underscore Meta_Control_underscore Compose Compose +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+00a0 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma KP_Comma KP_Comma KP_Comma KP_Comma Boot KP_Comma Boot KP_Comma +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr AltGr +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/ukdvorak b/projects/grub/configs/keymaps/ukdvorak new file mode 100644 index 00000000..d41b8735 --- /dev/null +++ b/projects/grub/configs/keymaps/ukdvorak @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+009c U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +keycode 8 = U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 10 = U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave +keycode 11 = U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 13 = U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0040 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis +keycode 17 = U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron +keycode 18 = U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose +keycode 19 = +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 20 = +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 21 = +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 22 = +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 23 = +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 24 = +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 25 = +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 26 = U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 27 = U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 32 = +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 33 = +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 34 = +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 35 = +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 36 = +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 37 = +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 38 = +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 39 = +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 40 = U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 41 = U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+00ac dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0023 U+007e U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 44 = U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute +keycode 45 = +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +keycode 46 = +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 47 = +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 48 = +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 49 = +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 50 = +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 52 = +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 53 = +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+005c U+007c U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/ukqwerty b/projects/grub/configs/keymaps/ukqwerty new file mode 100644 index 00000000..94e5a456 --- /dev/null +++ b/projects/grub/configs/keymaps/ukqwerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+00b9 U+00a1 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_exclam VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0022 U+00b2 U+215b nul nul nul nul Meta_two Meta_quotedbl Meta_two Meta_quotedbl Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+00a3 U+00b3 U+00a3 Escape Escape Escape Escape Meta_three Meta_three Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+20ac U+00bc Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_dollar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+00bd U+215c Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_percent Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+00be U+215d Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+007b U+215e Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_braceleft Meta_braceleft Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape U+0038 U+002a U+005b U+2122 Delete Delete Escape Escape Meta_eight Meta_asterisk Meta_bracketleft Meta_bracketleft Meta_Delete Meta_Delete Meta_Escape Meta_Escape +keycode 10 = U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0039 U+0028 U+005d U+00b1 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_nine Meta_parenleft Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 11 = U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+007d U+00b0 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_braceright Meta_braceright VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash U+002d U+005f U+005c U+00bf Control_underscore Control_underscore Control_backslash Control_backslash Meta_minus Meta_underscore Meta_backslash Meta_backslash Meta_Control_underscore Meta_Control_underscore Meta_Control_backslash Meta_Control_backslash +keycode 13 = U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek U+003d U+002b dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek Meta_equal Meta_plus dead_cedilla dead_ogonek dead_cedilla dead_ogonek dead_cedilla dead_ogonek +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0071 +U+0051 U+0040 +U+03a9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +U+0051 +U+0071 U+0040 +U+03c9 Control_q Control_q nul nul Meta_q Meta_Q Meta_at Meta_at Meta_Control_q Meta_Control_q Meta_nul Meta_nul +keycode 17 = +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0142 +U+0141 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0141 +U+0142 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_W Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_E Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 U+00b6 U+00ae Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_R Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0167 +U+0166 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0166 +U+0167 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_T Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 U+2190 U+00a5 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_Y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 U+2193 U+2191 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_U Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 U+2192 +U+0131 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 U+2192 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_I Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+00f8 +U+00d8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+00d8 +U+00f8 Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_O Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+00fe +U+00de Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+00de +U+00fe Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_P Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis U+005b U+007b dead_diaeresis U+002a Escape Escape dead_diaeresis dead_diaeresis Meta_bracketleft Meta_braceleft dead_diaeresis Meta_asterisk Meta_Escape Meta_Escape dead_diaeresis dead_diaeresis +keycode 27 = U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore U+005d U+007d dead_tilde U+005f Control_bracketright Control_bracketright dead_tilde Control_underscore Meta_bracketright Meta_braceright dead_tilde Meta_underscore Meta_Control_bracketright Meta_Control_bracketright dead_tilde Meta_Control_underscore +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+00e6 +U+00c6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+00c6 +U+00e6 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_A Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+00df U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 U+00a7 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_S Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+00f0 +U+00d0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+00d0 +U+00f0 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_D Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0111 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0110 +U+00aa Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_F Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+014b +U+014a Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+014a +U+014b Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_G Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0127 +U+0126 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0126 +U+0127 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_H Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a U+0309 U+031b Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_J Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+0138 U+0026 Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_ampersand Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+0142 +U+0141 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+0141 +U+0142 Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_L Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute U+003b U+003a dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute Meta_semicolon Meta_colon dead_acute dead_doubleacute dead_acute dead_doubleacute dead_acute dead_doubleacute +keycode 40 = U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron U+0027 U+0040 dead_circumflex dead_caron Control_g nul dead_circumflex dead_caron Meta_apostrophe Meta_at dead_circumflex dead_caron Meta_Control_g Meta_nul dead_circumflex dead_caron +keycode 41 = U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+00ac U+007c U+007c nul nul nul nul Meta_grave Meta_grave Meta_bar Meta_bar Meta_nul Meta_nul Meta_nul Meta_nul +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve U+0023 U+007e dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve Meta_numbersign Meta_asciitilde dead_grave dead_breve dead_grave dead_breve dead_grave dead_breve +keycode 44 = +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a U+00ab U+003c Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_less Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 U+00bb U+003e Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_greater Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 U+00a2 U+00a9 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_C Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 U+201c U+2018 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_V Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 U+201d U+2019 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_B Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_N Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+00b5 +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+039c +U+00ba Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_M Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+2500 U+00d7 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_less VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 52 = U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose U+002e U+003e U+00b7 U+00f7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_greater Compose Compose Compose Compose +keycode 53 = U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose U+002f U+003f U+0323 U+002e Delete Delete Compose Compose Meta_slash Meta_question Meta_slash Meta_period Meta_Delete Meta_Delete Compose Compose +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+007c U+00a6 Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_bar Meta_bar Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose AltGr Compose +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/usdvorak b/projects/grub/configs/keymaps/usdvorak new file mode 100644 index 00000000..b99b6a06 --- /dev/null +++ b/projects/grub/configs/keymaps/usdvorak @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex U+0036 U+005e dead_circumflex dead_circumflex Control_asciicircum Control_asciicircum dead_circumflex dead_circumflex Meta_six Meta_asciicircum dead_circumflex dead_circumflex Meta_Control_asciicircum Meta_Control_asciicircum dead_circumflex dead_circumflex +keycode 8 = U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 10 = U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave U+0039 U+0028 dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave Meta_nine Meta_parenleft dead_grave dead_grave dead_grave dead_grave dead_grave dead_grave +keycode 11 = U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 13 = U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde U+005d U+007d dead_tilde dead_tilde Control_bracketright Control_bracketright dead_tilde dead_tilde Meta_bracketright Meta_braceright dead_tilde dead_tilde Meta_Control_bracketright Meta_Control_bracketright dead_tilde dead_tilde +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis U+0027 U+0022 dead_acute dead_diaeresis Control_g Control_g dead_acute dead_diaeresis Meta_apostrophe Meta_quotedbl dead_acute dead_diaeresis Meta_Control_g Meta_Control_g dead_acute dead_diaeresis +keycode 17 = U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron U+002c U+003c dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron Meta_comma Meta_less dead_cedilla dead_caron dead_cedilla dead_caron dead_cedilla dead_caron +keycode 18 = U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+00b7 Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose +keycode 19 = +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 20 = +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 21 = +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 22 = +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 23 = +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 24 = +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 25 = +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 26 = U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 27 = U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 32 = +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 33 = +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 34 = +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 35 = +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 36 = +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 37 = +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 38 = +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 39 = +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 40 = U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 41 = U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde U+0060 U+007e dead_grave dead_tilde nul nul dead_grave dead_tilde Meta_grave Meta_asciitilde dead_grave dead_tilde Meta_nul Meta_nul dead_grave dead_tilde +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 44 = U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute U+003b U+003a dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute Meta_semicolon Meta_colon dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute dead_ogonek dead_doubleacute +keycode 45 = +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +keycode 46 = +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 47 = +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 48 = +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 49 = +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 50 = +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 52 = +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 53 = +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/keymaps/usqwerty b/projects/grub/configs/keymaps/usqwerty new file mode 100644 index 00000000..51103234 --- /dev/null +++ b/projects/grub/configs/keymaps/usqwerty @@ -0,0 +1,130 @@ +keymaps 0-127 +keycode 1 = Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Escape Escape Escape Escape Escape Escape Escape Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 2 = U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0031 U+0021 U+0031 U+0031 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_one Meta_exclam Meta_one Meta_one VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 3 = U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul U+0032 U+0040 U+0032 U+0032 nul nul nul nul Meta_two Meta_at Meta_two Meta_two Meta_nul Meta_nul Meta_nul Meta_nul +keycode 4 = U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+0033 U+0023 U+0033 U+0033 Escape Escape Escape Escape Meta_three Meta_numbersign Meta_three Meta_three Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 5 = U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+0034 U+0024 U+0034 U+0034 Control_backslash Control_backslash Control_backslash Control_backslash Meta_four Meta_dollar Meta_four Meta_four Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 6 = U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+0035 U+0025 U+0035 U+0035 Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_five Meta_percent Meta_five Meta_five Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 7 = U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum U+0036 U+005e U+0036 U+0036 Control_asciicircum Control_asciicircum Control_asciicircum Control_asciicircum Meta_six Meta_asciicircum Meta_six Meta_six Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum Meta_Control_asciicircum +keycode 8 = U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+0037 U+0026 U+0037 U+0037 Control_underscore Control_underscore Control_underscore Control_underscore Meta_seven Meta_ampersand Meta_seven Meta_seven Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 9 = U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+0038 U+002a U+0038 U+0038 Delete Delete Delete Delete Meta_eight Meta_asterisk Meta_eight Meta_eight Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 10 = U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0039 U+0028 U+0039 U+0039 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_nine Meta_parenleft Meta_nine Meta_nine VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 11 = U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+0030 U+0029 U+0030 U+0030 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_zero Meta_parenright Meta_zero Meta_zero VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 12 = U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore U+002d U+005f U+002d U+002d Control_underscore Control_underscore Control_underscore Control_underscore Meta_minus Meta_underscore Meta_minus Meta_minus Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore Meta_Control_underscore +keycode 13 = U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003d U+002b U+003d U+003d VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_equal Meta_plus Meta_equal Meta_equal VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 14 = Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace Delete Delete Delete Delete BackSpace BackSpace BackSpace BackSpace Meta_Delete Meta_Delete Meta_Delete Meta_Delete Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 15 = Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Tab Tab Tab Tab Tab Tab Tab Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 16 = +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0071 +U+0051 +U+0071 +U+0071 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +U+0051 +U+0071 +U+0051 +U+0051 Control_q Control_q Control_q Control_q Meta_q Meta_Q Meta_q Meta_q Meta_Control_q Meta_Control_q Meta_Control_q Meta_Control_q +keycode 17 = +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0077 +U+0057 +U+0077 +U+0077 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +U+0057 +U+0077 +U+0057 +U+0057 Control_w Control_w Control_w Control_w Meta_w Meta_W Meta_w Meta_w Meta_Control_w Meta_Control_w Meta_Control_w Meta_Control_w +keycode 18 = +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0065 +U+0045 +U+0065 +U+0065 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +U+0045 +U+0065 +U+0045 +U+0045 Control_e Control_e Control_e Control_e Meta_e Meta_E Meta_e Meta_e Meta_Control_e Meta_Control_e Meta_Control_e Meta_Control_e +keycode 19 = +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0072 +U+0052 +U+0072 +U+0072 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +U+0052 +U+0072 +U+0052 +U+0052 Control_r Control_r Control_r Control_r Meta_r Meta_R Meta_r Meta_r Meta_Control_r Meta_Control_r Meta_Control_r Meta_Control_r +keycode 20 = +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0074 +U+0054 +U+0074 +U+0074 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +U+0054 +U+0074 +U+0054 +U+0054 Control_t Control_t Control_t Control_t Meta_t Meta_T Meta_t Meta_t Meta_Control_t Meta_Control_t Meta_Control_t Meta_Control_t +keycode 21 = +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0079 +U+0059 +U+0079 +U+0079 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +U+0059 +U+0079 +U+0059 +U+0059 Control_y Control_y Control_y Control_y Meta_y Meta_Y Meta_y Meta_y Meta_Control_y Meta_Control_y Meta_Control_y Meta_Control_y +keycode 22 = +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0075 +U+0055 +U+0075 +U+0075 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +U+0055 +U+0075 +U+0055 +U+0055 Control_u Control_u Control_u Control_u Meta_u Meta_U Meta_u Meta_u Meta_Control_u Meta_Control_u Meta_Control_u Meta_Control_u +keycode 23 = +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0069 +U+0049 +U+0069 +U+0069 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +U+0049 +U+0069 +U+0049 +U+0049 Tab Tab Tab Tab Meta_i Meta_I Meta_i Meta_i Meta_Tab Meta_Tab Meta_Tab Meta_Tab +keycode 24 = +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+006f +U+004f +U+006f +U+006f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +U+004f +U+006f +U+004f +U+004f Control_o Control_o Control_o Control_o Meta_o Meta_O Meta_o Meta_o Meta_Control_o Meta_Control_o Meta_Control_o Meta_Control_o +keycode 25 = +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0070 +U+0050 +U+0070 +U+0070 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +U+0050 +U+0070 +U+0050 +U+0050 Control_p Control_p Control_p Control_p Meta_p Meta_P Meta_p Meta_p Meta_Control_p Meta_Control_p Meta_Control_p Meta_Control_p +keycode 26 = U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape U+005b U+007b U+005b U+005b Escape Escape Escape Escape Meta_bracketleft Meta_braceleft Meta_bracketleft Meta_bracketleft Meta_Escape Meta_Escape Meta_Escape Meta_Escape +keycode 27 = U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright U+005d U+007d U+005d U+005d Control_bracketright Control_bracketright Control_bracketright Control_bracketright Meta_bracketright Meta_braceright Meta_bracketright Meta_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright Meta_Control_bracketright +keycode 28 = Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Return Return Return Return Control_m Control_m Control_m Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 29 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 30 = +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0061 +U+0041 +U+0061 +U+0061 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +U+0041 +U+0061 +U+0041 +U+0041 Control_a Control_a Control_a Control_a Meta_a Meta_A Meta_a Meta_a Meta_Control_a Meta_Control_a Meta_Control_a Meta_Control_a +keycode 31 = +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0073 +U+0053 +U+0073 +U+0073 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +U+0053 +U+0073 +U+0053 +U+0053 Control_s Control_s Control_s Control_s Meta_s Meta_S Meta_s Meta_s Meta_Control_s Meta_Control_s Meta_Control_s Meta_Control_s +keycode 32 = +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0064 +U+0044 +U+0064 +U+0064 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +U+0044 +U+0064 +U+0044 +U+0044 Control_d Control_d Control_d Control_d Meta_d Meta_D Meta_d Meta_d Meta_Control_d Meta_Control_d Meta_Control_d Meta_Control_d +keycode 33 = +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0066 +U+0046 +U+0066 +U+0066 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +U+0046 +U+0066 +U+0046 +U+0046 Control_f Control_f Control_f Control_f Meta_f Meta_F Meta_f Meta_f Meta_Control_f Meta_Control_f Meta_Control_f Meta_Control_f +keycode 34 = +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0067 +U+0047 +U+0067 +U+0067 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +U+0047 +U+0067 +U+0047 +U+0047 Control_g Control_g Control_g Control_g Meta_g Meta_G Meta_g Meta_g Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 35 = +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0068 +U+0048 +U+0068 +U+0068 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +U+0048 +U+0068 +U+0048 +U+0048 BackSpace BackSpace BackSpace BackSpace Meta_h Meta_H Meta_h Meta_h Meta_BackSpace Meta_BackSpace Meta_BackSpace Meta_BackSpace +keycode 36 = +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+006a +U+004a +U+006a +U+006a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +U+004a +U+006a +U+004a +U+004a Linefeed Linefeed Linefeed Linefeed Meta_j Meta_J Meta_j Meta_j Meta_Linefeed Meta_Linefeed Meta_Linefeed Meta_Linefeed +keycode 37 = +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+006b +U+004b +U+006b +U+006b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +U+004b +U+006b +U+004b +U+004b Control_k Control_k Control_k Control_k Meta_k Meta_K Meta_k Meta_k Meta_Control_k Meta_Control_k Meta_Control_k Meta_Control_k +keycode 38 = +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+006c +U+004c +U+006c +U+006c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +U+004c +U+006c +U+004c +U+004c Control_l Control_l Control_l Control_l Meta_l Meta_L Meta_l Meta_l Meta_Control_l Meta_Control_l Meta_Control_l Meta_Control_l +keycode 39 = U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003b U+003a U+003b U+003b VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_semicolon Meta_colon Meta_semicolon Meta_semicolon VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 40 = U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g U+0027 U+0022 U+0027 U+0027 Control_g Control_g Control_g Control_g Meta_apostrophe Meta_quotedbl Meta_apostrophe Meta_apostrophe Meta_Control_g Meta_Control_g Meta_Control_g Meta_Control_g +keycode 41 = U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul U+0060 U+007e U+0060 U+0060 nul nul nul nul Meta_grave Meta_asciitilde Meta_grave Meta_grave Meta_nul Meta_nul Meta_nul Meta_nul +keycode 42 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 43 = U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash U+005c U+007c U+005c U+005c Control_backslash Control_backslash Control_backslash Control_backslash Meta_backslash Meta_bar Meta_backslash Meta_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash Meta_Control_backslash +keycode 44 = +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+007a +U+005a +U+007a +U+007a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +U+005a +U+007a +U+005a +U+005a Control_z Control_z Control_z Control_z Meta_z Meta_Z Meta_z Meta_z Meta_Control_z Meta_Control_z Meta_Control_z Meta_Control_z +keycode 45 = +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0078 +U+0058 +U+0078 +U+0078 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +U+0058 +U+0078 +U+0058 +U+0058 Control_x Control_x Control_x Control_x Meta_x Meta_X Meta_x Meta_x Meta_Control_x Meta_Control_x Meta_Control_x Meta_Control_x +keycode 46 = +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0063 +U+0043 +U+0063 +U+0063 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +U+0043 +U+0063 +U+0043 +U+0043 Control_c Control_c Control_c Control_c Meta_c Meta_C Meta_c Meta_c Meta_Control_c Meta_Control_c Meta_Control_c Meta_Control_c +keycode 47 = +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0076 +U+0056 +U+0076 +U+0076 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +U+0056 +U+0076 +U+0056 +U+0056 Control_v Control_v Control_v Control_v Meta_v Meta_V Meta_v Meta_v Meta_Control_v Meta_Control_v Meta_Control_v Meta_Control_v +keycode 48 = +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0062 +U+0042 +U+0062 +U+0062 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +U+0042 +U+0062 +U+0042 +U+0042 Control_b Control_b Control_b Control_b Meta_b Meta_B Meta_b Meta_b Meta_Control_b Meta_Control_b Meta_Control_b Meta_Control_b +keycode 49 = +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+006e +U+004e +U+006e +U+006e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +U+004e +U+006e +U+004e +U+004e Control_n Control_n Control_n Control_n Meta_n Meta_N Meta_n Meta_n Meta_Control_n Meta_Control_n Meta_Control_n Meta_Control_n +keycode 50 = +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+006d +U+004d +U+006d +U+006d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +U+004d +U+006d +U+004d +U+004d Control_m Control_m Control_m Control_m Meta_m Meta_M Meta_m Meta_m Meta_Control_m Meta_Control_m Meta_Control_m Meta_Control_m +keycode 51 = U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+002c U+003c U+002c U+002c VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_comma Meta_less Meta_comma Meta_comma VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 52 = U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose U+002e U+003e U+002e U+002e Compose Compose Compose Compose Meta_period Meta_greater Meta_period Meta_period Compose Compose Compose Compose +keycode 53 = U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete U+002f U+003f U+002f U+002f Delete Delete Delete Delete Meta_slash Meta_question Meta_slash Meta_slash Meta_Delete Meta_Delete Meta_Delete Meta_Delete +keycode 54 = Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift Shift +keycode 55 = KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply Hex_C KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply KP_Multiply +keycode 56 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 57 = U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul U+0020 U+0020 U+0020 U+0020 nul nul nul nul Meta_space Meta_space Meta_space Meta_space Meta_nul Meta_nul Meta_nul Meta_nul +keycode 58 = CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock CtrlL_Lock +keycode 59 = F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 F1 F13 Console_13 Console_25 F25 F37 Console_13 Console_25 Console_1 Console_13 F1 F1 Console_1 Console_13 F1 F1 +keycode 60 = F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 F2 F14 Console_14 Console_26 F26 F38 Console_14 Console_26 Console_2 Console_14 F2 F2 Console_2 Console_14 F2 F2 +keycode 61 = F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 F3 F15 Console_15 Console_27 F27 F39 Console_15 Console_27 Console_3 Console_15 F3 F3 Console_3 Console_15 F3 F3 +keycode 62 = F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 F4 F16 Console_16 Console_28 F28 F40 Console_16 Console_28 Console_4 Console_16 F4 F4 Console_4 Console_16 F4 F4 +keycode 63 = F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 F5 F17 Console_17 Console_29 F29 F41 Console_17 Console_29 Console_5 Console_17 F5 F5 Console_5 Console_17 F5 F5 +keycode 64 = F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 F6 F18 Console_18 Console_30 F30 F42 Console_18 Console_30 Console_6 Console_18 F6 F6 Console_6 Console_18 F6 F6 +keycode 65 = F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 F7 F19 Console_19 Console_31 F31 F43 Console_19 Console_31 Console_7 Console_19 F7 F7 Console_7 Console_19 F7 F7 +keycode 66 = F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 F8 F20 Console_20 Console_32 F32 F44 Console_20 Console_32 Console_8 Console_20 F8 F8 Console_8 Console_20 F8 F8 +keycode 67 = F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 F9 F21 Console_21 Console_33 F33 F45 Console_21 Console_33 Console_9 Console_21 F9 F9 Console_9 Console_21 F9 F9 +keycode 68 = F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 F10 F22 Console_22 Console_34 F34 F46 Console_22 Console_34 Console_10 Console_22 F10 F10 Console_10 Console_22 F10 F10 +keycode 69 = Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Hex_A Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock Num_Lock +keycode 70 = Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Show_Memory Show_Registers Scroll_Lock Show_State Scroll_Lock Scroll_Lock Scroll_Lock Show_Registers Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock Scroll_Lock +keycode 71 = KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 Ascii_7 Hex_7 KP_7 KP_7 KP_7 KP_7 KP_7 KP_7 +keycode 72 = KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 Ascii_8 Hex_8 KP_8 KP_8 KP_8 KP_8 KP_8 KP_8 +keycode 73 = KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 Ascii_9 Hex_9 KP_9 KP_9 KP_9 KP_9 KP_9 KP_9 +keycode 74 = KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract Hex_D KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract KP_Subtract +keycode 75 = KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 Ascii_4 Hex_4 KP_4 KP_4 KP_4 KP_4 KP_4 KP_4 +keycode 76 = KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 Ascii_5 Hex_5 KP_5 KP_5 KP_5 KP_5 KP_5 KP_5 +keycode 77 = KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 Ascii_6 Hex_6 KP_6 KP_6 KP_6 KP_6 KP_6 KP_6 +keycode 78 = KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add Hex_E KP_Add KP_Add KP_Add KP_Add KP_Add KP_Add +keycode 79 = KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 Ascii_1 Hex_1 KP_1 KP_1 KP_1 KP_1 KP_1 KP_1 +keycode 80 = KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 Ascii_2 Hex_2 KP_2 KP_2 KP_2 KP_2 KP_2 KP_2 +keycode 81 = KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 Ascii_3 Hex_3 KP_3 KP_3 KP_3 KP_3 KP_3 KP_3 +keycode 82 = KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 Ascii_0 Hex_0 KP_0 KP_0 KP_0 KP_0 KP_0 KP_0 +keycode 83 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period KP_Period KP_Period KP_Period KP_Period Boot KP_Period Boot KP_Period +keycode 86 = U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol U+003c U+003e U+007c U+00a6 VoidSymbol VoidSymbol VoidSymbol VoidSymbol Meta_less Meta_greater Meta_bar Meta_bar VoidSymbol VoidSymbol VoidSymbol VoidSymbol +keycode 87 = F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 F11 F23 Console_23 Console_35 F35 F47 Console_23 Console_35 Console_11 Console_23 F11 F11 Console_11 Console_23 F11 F11 +keycode 88 = F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 F12 F24 Console_24 Console_36 F36 F48 Console_24 Console_36 Console_12 Console_24 F12 F12 Console_12 Console_24 F12 F12 +keycode 102 = Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home Home +keycode 103 = Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up Up Up Up Up Up Up Up Up KeyboardSignal Up Up Up Up Up Up Up +keycode 104 = Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Scroll_Backward Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior Prior +keycode 105 = Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left Left Left Left Left Left Left Left Left Decr_Console Left Left Left Left Left Left Left +keycode 106 = Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right Right Right Right Right Right Right Right Right Incr_Console Right Right Right Right Right Right Right +keycode 107 = End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End End +keycode 108 = Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down Down +keycode 109 = Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next Next Scroll_Forward Next Next Next Next Next Next Next Next Next Next Next Next Next Next +keycode 110 = Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert Insert +keycode 111 = Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove Remove Remove Remove Remove Remove Remove Boot Remove Remove Remove Remove Remove Boot Remove Boot Remove +keycode 96 = KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter Hex_F KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter KP_Enter +keycode 97 = Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control Control +keycode 119 = Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause Pause +keycode 99 = VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash VoidSymbol VoidSymbol Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash Control_backslash +keycode 98 = KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide Hex_B KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide KP_Divide +keycode 100 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 125 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 126 = Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt Alt +keycode 121 = KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period KP_Period +strings as usual +# The content of this file will be appended to the keyboard layout. +# For example if you uncomment the following lines Alt+j can be used +# to go to the next console and Alt+k can be used to go to the +# previous console: + +# alt keycode 36 = Incr_Console +# shiftl alt keycode 36 = Incr_Console +# shiftr alt keycode 36 = Incr_Console +# shiftr shiftl alt keycode 36 = Incr_Console +# ctrll alt keycode 36 = Incr_Console +# ctrll shiftl alt keycode 36 = Incr_Console +# ctrll shiftr alt keycode 36 = Incr_Console +# ctrll shiftr shiftl alt keycode 36 = Incr_Console + +# alt keycode 37 = Decr_Console +# shiftl alt keycode 37 = Decr_Console +# shiftr alt keycode 37 = Decr_Console +# shiftr shiftl alt keycode 37 = Decr_Console +# ctrll alt keycode 37 = Decr_Console +# ctrll shiftl alt keycode 37 = Decr_Console +# ctrll shiftr alt keycode 37 = Decr_Console +# ctrll shiftr shiftl alt keycode 37 = Decr_Console + diff --git a/projects/grub/configs/revision b/projects/grub/configs/revision new file mode 100644 index 00000000..ccc0d079 --- /dev/null +++ b/projects/grub/configs/revision @@ -0,0 +1 @@ +e54c99aaff5e5f6f5d3b06028506c57e66d8ef77 diff --git a/projects/grub/configs/targets b/projects/grub/configs/targets new file mode 100644 index 00000000..2a6ca760 --- /dev/null +++ b/projects/grub/configs/targets @@ -0,0 +1,3 @@ +bios +coreboot +uefi diff --git a/projects/grub/configs/uefi/arch b/projects/grub/configs/uefi/arch new file mode 100644 index 00000000..5a9a476a --- /dev/null +++ b/projects/grub/configs/uefi/arch @@ -0,0 +1 @@ +i386 diff --git a/projects/grub/configs/uefi/config b/projects/grub/configs/uefi/config new file mode 100644 index 00000000..e3792e94 --- /dev/null +++ b/projects/grub/configs/uefi/config @@ -0,0 +1,4 @@ +set prefix=(cbfsdisk)/fallback + +set root=(cbfsdisk) +source (cbfsdisk)/fallback/grub.cfg diff --git a/projects/grub/configs/uefi/format b/projects/grub/configs/uefi/format new file mode 100644 index 00000000..c723d7f2 --- /dev/null +++ b/projects/grub/configs/uefi/format @@ -0,0 +1 @@ +i386-efi diff --git a/projects/grub/configs/uefi/install b/projects/grub/configs/uefi/install new file mode 100644 index 00000000..35090e49 --- /dev/null +++ b/projects/grub/configs/uefi/install @@ -0,0 +1,196 @@ +i386-efi/acpi.mod:i386-efi/acpi.mod +i386-efi/adler32.mod:i386-efi/adler32.mod +i386-efi/affs.mod:i386-efi/affs.mod +i386-efi/afs.mod:i386-efi/afs.mod +i386-efi/ahci.mod:i386-efi/ahci.mod +i386-efi/all_video.mod:i386-efi/all_video.mod +i386-efi/archelp.mod:i386-efi/archelp.mod +i386-efi/ata.mod:i386-efi/ata.mod +i386-efi/at_keyboard.mod:i386-efi/at_keyboard.mod +i386-efi/backtrace.mod:i386-efi/backtrace.mod +i386-efi/bfs.mod:i386-efi/bfs.mod +i386-efi/bitmap.mod:i386-efi/bitmap.mod +i386-efi/bitmap_scale.mod:i386-efi/bitmap_scale.mod +i386-efi/boot.mod:i386-efi/boot.mod +i386-efi/bsd.mod:i386-efi/bsd.mod +i386-efi/btrfs.mod:i386-efi/btrfs.mod +i386-efi/cat.mod:i386-efi/cat.mod +i386-efi/cbfs.mod:i386-efi/cbfs.mod +i386-efi/cbls.mod:i386-efi/cbls.mod +i386-efi/cbmemc.mod:i386-efi/cbmemc.mod +i386-efi/cbtime.mod:i386-efi/cbtime.mod +i386-efi/chain.mod:i386-efi/chain.mod +i386-efi/cmp.mod:i386-efi/cmp.mod +i386-efi/configfile.mod:i386-efi/configfile.mod +i386-efi/cpio.mod:i386-efi/cpio.mod +i386-efi/cpio_be.mod:i386-efi/cpio_be.mod +i386-efi/cpuid.mod:i386-efi/cpuid.mod +i386-efi/crc64.mod:i386-efi/crc64.mod +i386-efi/crypto.mod:i386-efi/crypto.mod +i386-efi/cryptodisk.mod:i386-efi/cryptodisk.mod +i386-efi/cs5536.mod:i386-efi/cs5536.mod +i386-efi/date.mod:i386-efi/date.mod +i386-efi/datehook.mod:i386-efi/datehook.mod +i386-efi/datetime.mod:i386-efi/datetime.mod +i386-efi/disk.mod:i386-efi/disk.mod +i386-efi/diskfilter.mod:i386-efi/diskfilter.mod +i386-efi/div_test.mod:i386-efi/div_test.mod +i386-efi/echo.mod:i386-efi/echo.mod +i386-efi/ehci.mod:i386-efi/ehci.mod +i386-efi/elf.mod:i386-efi/elf.mod +i386-efi/eval.mod:i386-efi/eval.mod +i386-efi/exfat.mod:i386-efi/exfat.mod +i386-efi/ext2.mod:i386-efi/ext2.mod +i386-efi/extcmd.mod:i386-efi/extcmd.mod +i386-efi/fat.mod:i386-efi/fat.mod +i386-efi/file.mod:i386-efi/file.mod +i386-efi/fshelp.mod:i386-efi/fshelp.mod +i386-efi/gcry_arcfour.mod:i386-efi/gcry_arcfour.mod +i386-efi/gcry_blowfish.mod:i386-efi/gcry_blowfish.mod +i386-efi/gcry_camellia.mod:i386-efi/gcry_camellia.mod +i386-efi/gcry_cast5.mod:i386-efi/gcry_cast5.mod +i386-efi/gcry_crc.mod:i386-efi/gcry_crc.mod +i386-efi/gcry_des.mod:i386-efi/gcry_des.mod +i386-efi/gcry_dsa.mod:i386-efi/gcry_dsa.mod +i386-efi/gcry_idea.mod:i386-efi/gcry_idea.mod +i386-efi/gcry_md4.mod:i386-efi/gcry_md4.mod +i386-efi/gcry_md5.mod:i386-efi/gcry_md5.mod +i386-efi/gcry_rfc2268.mod:i386-efi/gcry_rfc2268.mod +i386-efi/gcry_rijndael.mod:i386-efi/gcry_rijndael.mod +i386-efi/gcry_rmd160.mod:i386-efi/gcry_rmd160.mod +i386-efi/gcry_rsa.mod:i386-efi/gcry_rsa.mod +i386-efi/gcry_seed.mod:i386-efi/gcry_seed.mod +i386-efi/gcry_serpent.mod:i386-efi/gcry_serpent.mod +i386-efi/gcry_sha1.mod:i386-efi/gcry_sha1.mod +i386-efi/gcry_sha256.mod:i386-efi/gcry_sha256.mod +i386-efi/gcry_sha512.mod:i386-efi/gcry_sha512.mod +i386-efi/gcry_tiger.mod:i386-efi/gcry_tiger.mod +i386-efi/gcry_twofish.mod:i386-efi/gcry_twofish.mod +i386-efi/gcry_whirlpool.mod:i386-efi/gcry_whirlpool.mod +i386-efi/gettext.mod:i386-efi/gettext.mod +i386-efi/gfxmenu.mod:i386-efi/gfxmenu.mod +i386-efi/gfxterm_background.mod:i386-efi/gfxterm_background.mod +i386-efi/gfxterm_menu.mod:i386-efi/gfxterm_menu.mod +i386-efi/gptsync.mod:i386-efi/gptsync.mod +i386-efi/gzio.mod:i386-efi/gzio.mod +i386-efi/halt.mod:i386-efi/halt.mod +i386-efi/hashsum.mod:i386-efi/hashsum.mod +i386-efi/hdparm.mod:i386-efi/hdparm.mod +i386-efi/help.mod:i386-efi/help.mod +i386-efi/hexdump.mod:i386-efi/hexdump.mod +i386-efi/hfs.mod:i386-efi/hfs.mod +i386-efi/hfsplus.mod:i386-efi/hfsplus.mod +i386-efi/http.mod:i386-efi/http.mod +i386-efi/iorw.mod:i386-efi/iorw.mod +i386-efi/iso9660.mod:i386-efi/iso9660.mod +i386-efi/jfs.mod:i386-efi/jfs.mod +i386-efi/jpeg.mod:i386-efi/jpeg.mod +i386-efi/keystatus.mod:i386-efi/keystatus.mod +i386-efi/linux.mod:i386-efi/linux.mod +i386-efi/linux16.mod:i386-efi/linux16.mod +i386-efi/loadenv.mod:i386-efi/loadenv.mod +i386-efi/loopback.mod:i386-efi/loopback.mod +i386-efi/ls.mod:i386-efi/ls.mod +i386-efi/lsacpi.mod:i386-efi/lsacpi.mod +i386-efi/lsmmap.mod:i386-efi/lsmmap.mod +i386-efi/lspci.mod:i386-efi/lspci.mod +i386-efi/luks.mod:i386-efi/luks.mod +i386-efi/lvm.mod:i386-efi/lvm.mod +i386-efi/lzopio.mod:i386-efi/lzopio.mod +i386-efi/mdraid09.mod:i386-efi/mdraid09.mod +i386-efi/mdraid09_be.mod:i386-efi/mdraid09_be.mod +i386-efi/mdraid1x.mod:i386-efi/mdraid1x.mod +i386-efi/memdisk.mod:i386-efi/memdisk.mod +i386-efi/memrw.mod:i386-efi/memrw.mod +i386-efi/minicmd.mod:i386-efi/minicmd.mod +i386-efi/minix.mod:i386-efi/minix.mod +i386-efi/minix2.mod:i386-efi/minix2.mod +i386-efi/minix2_be.mod:i386-efi/minix2_be.mod +i386-efi/minix3.mod:i386-efi/minix3.mod +i386-efi/minix3_be.mod:i386-efi/minix3_be.mod +i386-efi/minix_be.mod:i386-efi/minix_be.mod +i386-efi/mmap.mod:i386-efi/mmap.mod +i386-efi/morse.mod:i386-efi/morse.mod +i386-efi/mpi.mod:i386-efi/mpi.mod +i386-efi/msdospart.mod:i386-efi/msdospart.mod +i386-efi/multiboot.mod:i386-efi/multiboot.mod +i386-efi/multiboot2.mod:i386-efi/multiboot2.mod +i386-efi/nativedisk.mod:i386-efi/nativedisk.mod +i386-efi/net.mod:i386-efi/net.mod +i386-efi/newc.mod:i386-efi/newc.mod +i386-efi/nilfs2.mod:i386-efi/nilfs2.mod +i386-efi/normal.mod:i386-efi/normal.mod +i386-efi/ntfs.mod:i386-efi/ntfs.mod +i386-efi/ntfscomp.mod:i386-efi/ntfscomp.mod +i386-efi/odc.mod:i386-efi/odc.mod +i386-efi/offsetio.mod:i386-efi/offsetio.mod +i386-efi/ohci.mod:i386-efi/ohci.mod +i386-efi/part_bsd.mod:i386-efi/part_bsd.mod +i386-efi/part_gpt.mod:i386-efi/part_gpt.mod +i386-efi/part_msdos.mod:i386-efi/part_msdos.mod +i386-efi/parttool.mod:i386-efi/parttool.mod +i386-efi/password.mod:i386-efi/password.mod +i386-efi/password_pbkdf2.mod:i386-efi/password_pbkdf2.mod +i386-efi/pata.mod:i386-efi/pata.mod +i386-efi/pbkdf2.mod:i386-efi/pbkdf2.mod +i386-efi/pcidump.mod:i386-efi/pcidump.mod +i386-efi/play.mod:i386-efi/play.mod +i386-efi/png.mod:i386-efi/png.mod +i386-efi/priority_queue.mod:i386-efi/priority_queue.mod +i386-efi/probe.mod:i386-efi/probe.mod +i386-efi/procfs.mod:i386-efi/procfs.mod +i386-efi/progress.mod:i386-efi/progress.mod +i386-efi/raid5rec.mod:i386-efi/raid5rec.mod +i386-efi/raid6rec.mod:i386-efi/raid6rec.mod +i386-efi/read.mod:i386-efi/read.mod +i386-efi/reboot.mod:i386-efi/reboot.mod +i386-efi/regexp.mod:i386-efi/regexp.mod +i386-efi/reiserfs.mod:i386-efi/reiserfs.mod +i386-efi/relocator.mod:i386-efi/relocator.mod +i386-efi/romfs.mod:i386-efi/romfs.mod +i386-efi/scsi.mod:i386-efi/scsi.mod +i386-efi/search.mod:i386-efi/search.mod +i386-efi/search_fs_file.mod:i386-efi/search_fs_file.mod +i386-efi/search_fs_uuid.mod:i386-efi/search_fs_uuid.mod +i386-efi/search_label.mod:i386-efi/search_label.mod +i386-efi/serial.mod:i386-efi/serial.mod +i386-efi/setjmp.mod:i386-efi/setjmp.mod +i386-efi/setpci.mod:i386-efi/setpci.mod +i386-efi/sfs.mod:i386-efi/sfs.mod +i386-efi/sleep.mod:i386-efi/sleep.mod +i386-efi/spkmodem.mod:i386-efi/spkmodem.mod +i386-efi/squash4.mod:i386-efi/squash4.mod +i386-efi/syslinuxcfg.mod:i386-efi/syslinuxcfg.mod +i386-efi/tar.mod:i386-efi/tar.mod +i386-efi/terminal.mod:i386-efi/terminal.mod +i386-efi/terminfo.mod:i386-efi/terminfo.mod +i386-efi/test.mod:i386-efi/test.mod +i386-efi/testload.mod:i386-efi/testload.mod +i386-efi/testspeed.mod:i386-efi/testspeed.mod +i386-efi/tftp.mod:i386-efi/tftp.mod +i386-efi/tga.mod:i386-efi/tga.mod +i386-efi/time.mod:i386-efi/time.mod +i386-efi/tr.mod:i386-efi/tr.mod +i386-efi/trig.mod:i386-efi/trig.mod +i386-efi/true.mod:i386-efi/true.mod +i386-efi/udf.mod:i386-efi/udf.mod +i386-efi/ufs1.mod:i386-efi/ufs1.mod +i386-efi/ufs1_be.mod:i386-efi/ufs1_be.mod +i386-efi/ufs2.mod:i386-efi/ufs2.mod +i386-efi/uhci.mod:i386-efi/uhci.mod +i386-efi/usb.mod:i386-efi/usb.mod +i386-efi/usb_keyboard.mod:i386-efi/usb_keyboard.mod +i386-efi/usbms.mod:i386-efi/usbms.mod +i386-efi/usbserial_common.mod:i386-efi/usbserial_common.mod +i386-efi/usbserial_ftdi.mod:i386-efi/usbserial_ftdi.mod +i386-efi/usbserial_pl2303.mod:i386-efi/usbserial_pl2303.mod +i386-efi/usbserial_usbdebug.mod:i386-efi/usbserial_usbdebug.mod +i386-efi/usbtest.mod:i386-efi/usbtest.mod +i386-efi/verify.mod:i386-efi/verify.mod +i386-efi/video_colors.mod:i386-efi/video_colors.mod +i386-efi/videoinfo.mod:i386-efi/videoinfo.mod +i386-efi/videotest.mod:i386-efi/videotest.mod +i386-efi/videotest_checksum.mod:i386-efi/videotest_checksum.mod +i386-efi/xfs.mod:i386-efi/xfs.mod +i386-efi/xzio.mod:i386-efi/xzio.mod +i386-efi/zfs.mod:i386-efi/zfs.mod diff --git a/projects/grub/configs/uefi/modules-minimal b/projects/grub/configs/uefi/modules-minimal new file mode 100644 index 00000000..310aef86 --- /dev/null +++ b/projects/grub/configs/uefi/modules-minimal @@ -0,0 +1,11 @@ +ahci +cbmemc +ehci +ext2 +halt +part_bsd +part_gpt +pata +reboot +usbms +verify diff --git a/projects/grub/configs/uefi/platform b/projects/grub/configs/uefi/platform new file mode 100644 index 00000000..9d3492ad --- /dev/null +++ b/projects/grub/configs/uefi/platform @@ -0,0 +1 @@ +efi diff --git a/projects/grub/grub b/projects/grub/grub new file mode 100755 index 00000000..4962da4f --- /dev/null +++ b/projects/grub/grub @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +download() { + local repository="$project" + + project_download_git "$project" "$repository" 'https://git.savannah.gnu.org/r/grub.git' "$@" +} + +download_check() { + local repository="$project" + + project_download_check_git "$project" "$repository" "$@" +} + +extract() { + project_extract "$project" "$@" +} + +extract_check() { + project_extract_check "$project" "$@" +} + +update() { + local repository="$project" + + project_update_git "$project" "$repository" "$@" +} + +update_check() { + local repository="$project" + + project_update_check_git "$project" "$repository" "$@" +} + +build() { + local target="$1" + local repository="$project" + + project_sources_directory_missing_empty_error "$project" "$repository" "$@" + + if git_project_check "$repository"; then + git_project_checkout "$project" "$repository" "$@" + fi + + local project_path="$(project_path "$project")" + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + local build_path="$(project_build_path "$project" "$@")" + local raw_keymap_path="$project_path/$CONFIGS/keymaps" + + mkdir -p "$build_path" + + grub_build_utils + + if [[ "$target" == 'bios' ]]; then + grub_build_floppy_image + else + grub_build_standalone_image + fi + + for raw_keymap in "$raw_keymap_path"/*; do + grub_build_layout "$raw_keymap" + done + + grub_build_font + + grub_copy_modules + + make -C "$sources_path" distclean +} + +build_check() { + project_build_check "$project" "$@" +} + +install() { + project_install "$project" "$@" +} + +install_check() { + project_install_check "$project" "$@" +} + +release() { + local repository="$project" + + project_release_install_archive "$project" "$IMAGES" "$@" + project_release_sources_git "$project" "$repository" "$@" +} + +release_check() { + local repository="$project" + + project_release_install_archive_check "$project" "$IMAGES" "$@" + project_release_check_sources_git "$project" "$repository" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/grub/grub-helper b/projects/grub/grub-helper new file mode 100755 index 00000000..dd069290 --- /dev/null +++ b/projects/grub/grub-helper @@ -0,0 +1,212 @@ +#!/usr/bin/env bash + +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +ARCH='arch' +CONFIG='config' +FONTS='fonts' +FONT_FILE='font-file' +FONT_PROJECT='font-project' +FORMAT='format' +MODMIN='modules-minimal' +PLATFORM='platform' +PREFIX='prefix' +SIZE='size' + +grub_arch() { + project_file_contents "$project" "$CONFIGS" "$ARCH" "$@" +} + +grub_font_file() { + project_file_contents "$project" "$CONFIGS" "$FONT_FILE" "$@" +} + +grub_font_project() { + project_file_contents "$project" "$CONFIGS" "$FONT_PROJECT" "$@" +} + +grub_format() { + project_file_contents "$project" "$CONFIGS" "$FORMAT" "$@" +} + +grub_platform() { + project_file_contents "$project" "$CONFIGS" "$PLATFORM" "$@" +} + +grub_prefix() { + project_file_contents "$project" "$CONFIGS" "$PREFIX" "$@" +} + +grub_size() { + project_file_contents "$project" "$CONFIGS" "$SIZE" "$@" +} + +grub_config_path() { + project_file_path "$project" "$CONFIGS" "$CONFIG" "$@" +} + +grub_modmin_path() { + project_file_path "$project" "$CONFIGS" "$MODMIN" "$@" +} + +grub_copy_modules() { + local grub_module_dir="$sources_path/grub-core" + local keep_dir="$build_path/$(grub_format "$target" "$@")" + + mkdir -p "$keep_dir" + + cp -a "$grub_module_dir"/*.@(mod|lst) "$keep_dir" +} + +grub_build_font() { + # Font project-specific filenames and paths + local font_file="$(grub_font_file "$FONTS" "$@")" + local font_project="$(grub_font_project "$FONTS" "$@")" + local font_build_dir="$root/$BUILD/$font_project" + + local grub_mkfont="$sources_path/grub-mkfont" + + # GRUB font directory for outputting the built PF2 file + mkdir -p "$build_path/$FONTS" + + "$grub_mkfont" --output="$build_path/$FONTS/${font_file%.*}.pf2" \ + "$font_build_dir/$font_file" +} + +grub_build_utils() { + ( + # If arch and/or platform files don't exist, + # the configure script will pick a reasonable default + local arch="$(grub_arch "$target" "$@")" + local platform="$(grub_platform "$target" "$@")" + + cd "$sources_path" || return + + if git_project_check "$repository"; then + ./autogen.sh + fi + + ./configure --target="$arch" --with-platform="$platform" + + make -j"$TASKS" + ) +} + +grub_build_layout() { + local raw_layout="${1##*/}" + local raw_layout_path="$1" + local keymap_out_path="$build_path/keymaps" + local grub_mklayout="$sources_path/grub-mklayout" + local grub_kbd_layout="$keymap_out_path/$raw_layout.gkb" + + if ! [[ -e "$keymap_out_path" ]]; then + mkdir -p "$keymap_out_path" + elif ! [[ -d "$keymap_out_path" ]]; then + printf '\n%s\n' "Error: File $keymap_out_path is not a directory" 1>&2 + + return 1 + fi + + "$grub_mklayout" --output="$grub_kbd_layout" --input="$raw_layout_path" +} + +grub_build_bootable_image() { + local arch="$(grub_arch "$target" "$@")" + local format="$(grub_format "$target" "$@")" + local prefix="$(grub_prefix "$target" "$@")" + local config_path="$(grub_config_path "$target" "$@")" + + local grub_mkimage="$sources_path/grub-mkimage" + local grub_module_dir="$sources_path/grub-core" + + local grubimg="$build_path/grub.img" + local grub_bootimg="$grub_module_dir/boot.img" + local grub_bootable_img="$build_path/grub2" + + "$grub_mkimage" \ + --config="$config_path" \ + --directory="$grub_module_dir" \ + --output="$grubimg" \ + --format="$format" \ + --prefix="$prefix" \ + cbfs configfile + + cat "$grub_bootimg" "$grubimg" > "$grub_bootable_img" + rm -f "$grubimg" +} + +grub_build_floppy_image() { + local grubimg="$build_path/grub2" + local tempfile="$build_path/temp.file" + + if ! grub_build_bootable_image "$@"; then + printf '\n%s\n\n' "Error: Failed to build a GRUB image" 1>&2 + + return 1 + fi + + local size="$(grub_size "$target" "$@")" + + # Pre-allocate a floppy-sized image + # SeaBIOS requires floppy images to have a "correct" size + if ! [[ -e "$tempfile" ]]; then + dd if=/dev/zero of="$tempfile" bs=1024 count="${size:-160}" + else + printf '\n%s\n\n' "Error: File $tempfile already exists!" 1>&2 + + return 1 + fi + + local -i grubimg_size="$(stat -c %s "$grubimg")" + local -i floppy_size="$((${size:-160} * 1024))" + + # Graft the GRUB image onto the blank floppy image + if ((grubimg_size <= floppy_size)); then + dd if="$grubimg" of="$tempfile" bs=1 conv=notrunc + + rm -f "$grubimg" + mv "$tempfile" "$grubimg" + else + printf '\n%s' "Error: Image ${grubimg##*/} is too large; " 1>&2 + printf '%s\n\n' "it must be less than ${size}KiB in size" 1>&2 + + return 1 + fi +} + +grub_build_standalone_image() { + local arch="$(grub_arch "$target" "$@")" + local format="$(grub_format "$target" "$@")" + local prefix="$(grub_prefix "$target" "$@")" + local config_path="$(grub_config_path "$target" "$@")" + + local grubimg="$build_path/grub2" + + local grub_mkimage="$sources_path/grub-mkimage" + local grub_mkstandalone="$sources_path/grub-mkstandalone" + local grub_module_dir="$sources_path/grub-core" + + "$grub_mkstandalone" \ + --grub-mkimage="$grub_mkimage" \ + --fonts='' \ + --themes='' \ + --locales='' \ + --install-modules='cbfs configfile' \ + --directory="$grub_module_dir" \ + --format="$format" \ + --output="$grubimg" \ + /boot/grub/grub.cfg="$config_path" +} diff --git a/projects/grub/install/corebootfb/AUTHORS b/projects/grub/install/corebootfb/AUTHORS new file mode 100644 index 00000000..0157cfed --- /dev/null +++ b/projects/grub/install/corebootfb/AUTHORS @@ -0,0 +1,2 @@ +Copyright (C) 2014, 2015, 2016 Leah Rowe <info@minifree.org> +Copyright (C) 2015 Klemens Nanni <contact@autoboot.org> diff --git a/projects/grub/install/corebootfb/COPYING b/projects/grub/install/corebootfb/COPYING new file mode 100644 index 00000000..3b78313b --- /dev/null +++ b/projects/grub/install/corebootfb/COPYING @@ -0,0 +1,695 @@ +# GRUB configuration files under projects/grub/install/ + +# 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 3 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, see <http://www.gnu.org/licenses/>. +# + +# See AUTHORS for copyright holder information. + +# Full terms of GPLv3 below, taken from https://www.gnu.org/licenses/licenses.html +________________________________________________________________________ + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 3 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, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/projects/grub/install/corebootfb/background/COPYING b/projects/grub/install/corebootfb/background/COPYING new file mode 100644 index 00000000..9467677a --- /dev/null +++ b/projects/grub/install/corebootfb/background/COPYING @@ -0,0 +1,3 @@ +These images are based on http://libreboot.org/logo/logo.svg +which is Copyright 2014 Marcus Moeller and released under CC-0 +https://creativecommons.org/publicdomain/zero/1.0/legalcode diff --git a/projects/grub/install/corebootfb/background/background1024x768.png b/projects/grub/install/corebootfb/background/background1024x768.png Binary files differnew file mode 100644 index 00000000..2689d5d8 --- /dev/null +++ b/projects/grub/install/corebootfb/background/background1024x768.png diff --git a/projects/grub/install/corebootfb/background/background1280x800.png b/projects/grub/install/corebootfb/background/background1280x800.png Binary files differnew file mode 100644 index 00000000..0570c879 --- /dev/null +++ b/projects/grub/install/corebootfb/background/background1280x800.png diff --git a/projects/grub/install/corebootfb/background/logo.svg b/projects/grub/install/corebootfb/background/logo.svg new file mode 100644 index 00000000..62147c1d --- /dev/null +++ b/projects/grub/install/corebootfb/background/logo.svg @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="80mm" + height="80mm" + viewBox="0 0 283.46457 283.46456" + id="svg3349" + version="1.1" + inkscape:version="0.91 r13725" + sodipodi:docname="Libreboot_Logo_Deer_only_black.svg"> + <defs + id="defs3351" /> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4" + inkscape:cx="507.97245" + inkscape:cy="-55.115733" + inkscape:document-units="px" + inkscape:current-layer="layer1" + showgrid="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + inkscape:window-width="1920" + inkscape:window-height="1150" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" /> + <metadata + id="metadata3354"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="Ebene 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(-244.04728,-370.46192)"> + <path + inkscape:connector-curvature="0" + id="path10" + d="m 461.38431,532.68555 0.79438,-2.14488 c 1.82712,-4.76644 3.49543,-9.77117 4.76645,-14.93478 0.39734,-1.35049 0.55641,-2.62157 0.63551,-3.89259 -0.15906,2.78039 -0.0792,1.03274 0,-0.63551 0.39734,-7.86464 0.31751,-11.91611 -0.15906,-15.96757 -0.31751,-2.93927 -0.5558,-5.79912 -0.5558,-8.65898 -0.0792,-2.54209 -0.15906,-4.92532 -0.39735,-7.30854 -0.0792,-1.03273 -0.0792,-2.06541 -0.0792,-3.17761 0,-3.57483 0.39735,-7.0702 1.27108,-10.56556 l 1.27102,-0.55641 c 4.76644,-2.14494 8.97679,-5.32255 12.39274,-9.29454 l 1.66825,0 c 1.90659,0 3.81312,-0.23829 5.64024,-0.71498 2.38322,-0.55641 4.68703,-1.4299 6.91132,-2.46263 1.03273,-0.47657 1.98599,-1.1122 2.78044,-1.82712 0.55641,-0.55641 1.03268,-1.27108 1.4299,-1.98606 0.47657,-1.03267 1.27108,-1.82712 2.30375,-2.30375 0.95333,-0.47658 1.74772,-1.11215 2.14494,-2.06547 0.39735,-0.71492 0.31751,-1.58878 -0.0792,-2.30376 -0.47657,-0.79438 -1.27108,-1.50936 -2.14494,-1.74771 -0.95327,-0.39734 -1.90653,-0.71492 -2.78039,-1.11214 -1.58883,-0.71498 -2.85985,-1.27108 -4.05146,-1.82712 -0.63551,-0.31751 -2.62151,-1.03273 -4.60751,-1.50937 -2.14493,-0.63551 -4.21034,-1.1122 -6.27581,-1.66824 -1.58883,-0.47657 -4.05146,-1.50937 -6.27581,-2.93932 -2.93926,-1.74772 -5.95799,-3.25702 -9.05619,-4.44869 -2.22429,-0.8738 -4.68698,-1.35049 -7.14961,-1.50937 l -3.0982,0 -0.23829,-0.55641 -1.03273,-4.76638 -0.63551,-3.89259 -0.31751,-1.986 0.71498,-0.39734 c 3.49536,-2.22435 6.5141,-5.0048 8.97673,-8.26181 0.5564,-0.63551 0.71497,-1.42996 0.5564,-2.22435 -0.15906,-1.11214 -1.19161,-1.90659 -2.30375,-1.90659 -0.47657,0 -0.95326,0.15906 -1.27108,0.47657 l -3.17761,2.06547 c -2.14487,1.50937 -4.36922,2.78045 -6.67297,3.97206 l -0.47657,-0.63557 c -2.62157,-3.01874 -4.13094,-6.91132 -4.13094,-10.96279 l 0,-1.58877 c 0.23829,-1.66825 0.47657,-3.49537 0.71498,-5.40196 0.0792,-0.55641 0,-1.11214 -0.15906,-1.58883 -0.31751,-0.71492 -0.55579,-1.4299 -0.8738,-1.986 -0.15906,-0.55641 -0.6355,-0.95327 -1.19161,-1.03274 -0.63551,0 -1.19161,0 -1.74771,0.23829 -0.55641,0.23829 -1.19161,0.47657 -1.74765,0.79439 -0.55641,0.31751 -0.87386,0.79438 -1.03273,1.42989 -0.95333,3.01874 -1.35049,6.11694 -1.35049,9.29455 0,3.73371 0.63551,7.46742 1.82712,11.04225 0.55641,1.27102 1.11214,2.54204 1.82712,3.65424 1.19161,2.06547 2.22434,4.13088 3.17761,6.27581 1.27108,3.09814 1.90659,6.35522 1.90659,9.69171 l 0,0.71498 -1.03274,0.55641 c -2.5421,1.50936 -4.60756,3.73371 -5.87858,6.43468 l -0.95327,0 c -3.6543,0.31751 -7.22907,1.11215 -10.56562,2.46264 -2.06541,0.79438 -3.972,2.06546 -5.48136,3.57483 -0.31751,0.39735 -0.63551,0.87386 -0.79439,1.35049 l 0.8738,0.39734 1.19161,0.71498 1.19161,0.71492 1.03273,0.63557 c 0.47657,0.31751 1.03274,0.55641 1.58884,0.71492 1.35049,0.23828 2.62151,0.47657 3.97199,0.47657 2.30376,0.0792 4.60757,0.47657 6.83192,1.1122 l -0.55641,1.11215 c -0.63557,1.27108 -1.19161,2.54209 -1.66825,3.81318 -1.1122,3.49536 -2.06546,6.99072 -2.78044,10.48609 -1.58884,7.70577 -3.17761,14.85537 -4.92532,22.00504 -0.47658,2.14487 -1.4299,4.28975 -2.5421,6.27581 -4.28976,7.54683 -10.64497,13.6637 -18.35074,17.55629 -4.05147,2.14488 -8.42069,3.49543 -12.94879,4.28981 -7.30848,1.11214 -14.61702,1.82712 -21.8461,2.06541 -5.56083,0.15906 -11.36001,0.71498 -17.00025,1.82718 -2.62157,0.47657 -5.16361,0.95326 -7.6263,1.50937 -4.28975,0.87385 -8.57956,2.22428 -12.71044,3.97199 -4.76644,1.986 -9.21513,4.5281 -13.18713,7.70571 -3.33648,2.62157 -5.87858,6.11693 -7.30854,10.1684 -0.23829,0.55641 -0.31751,1.19161 -0.31751,1.82712 0,1.35049 0.47657,2.62151 1.42996,3.65424 0.95326,1.03273 2.30375,1.42996 3.65424,1.19161 l -1.11214,1.90659 c -0.47657,0.63551 -0.79439,1.35049 -1.11214,2.06547 -0.63558,1.74765 -1.19162,3.41596 -1.66831,5.24308 -1.35049,4.92526 -2.46263,9.6917 -3.41589,14.53755 -0.31751,1.82713 -1.50937,3.73372 -3.33655,5.0842 -0.63551,0.47658 -1.35049,0.95333 -2.06541,1.19162 -1.986,0.87385 -4.05146,1.50936 -6.03746,1.98599 -2.62157,0.55641 -5.0842,1.19161 -7.46742,1.74772 -0.55641,0.15906 -1.27102,0.63551 -1.74772,1.27102 -0.63551,0.95332 -1.11214,1.90659 -1.27102,3.01873 -0.15906,0.79445 -0.3175,1.50942 -0.39734,2.30381 -0.71498,4.28975 -1.74772,8.65897 -3.17761,12.78991 -1.42996,4.21034 -3.25708,8.34122 -5.32255,12.31327 -0.71492,1.35049 -1.42989,2.5421 -2.30375,3.81312 -0.63551,0.95327 -1.35049,2.06547 -1.82712,3.17761 -0.47657,0.95327 -0.95327,1.82712 -1.50937,2.70098 -0.31751,0.55641 -0.95332,1.03273 -1.58883,1.27108 l -0.87386,0.15906 c -1.66824,0.31751 -3.25702,0.79439 -4.68697,1.58877 -1.58878,0.79445 -3.09814,1.58884 -4.68692,2.38323 -3.49542,1.82712 -7.0702,5.16367 -9.6123,9.29454 -0.15906,0.31751 -0.31751,0.79439 -0.31751,1.27102 0,0.31751 0.0792,0.71498 0.23829,1.1122 0.47657,0.95327 1.50937,1.50937 2.5421,1.50937 10.00946,0.23828 19.54229,-3.89259 26.29473,-11.36001 1.98606,-2.22429 4.21034,-4.76639 6.51416,-7.22908 7.86458,-8.73844 12.63103,-15.01425 16.7619,-21.68722 0.31751,-0.47657 0.71498,-0.71498 1.1122,-0.71498 0.23829,0 0.39735,0 0.55641,0.0792 0.79439,0.39735 1.50937,0.63557 2.38316,0.71498 1.03274,0.23829 2.4627,0.39735 3.89259,0.71498 1.82712,0.23829 3.65431,0.31751 5.40196,0 2.85985,-0.39735 5.71971,-1.03273 8.42068,-1.986 4.05147,-1.35049 7.86459,-3.41595 11.20114,-6.11693 5.40195,-4.21034 10.64497,-8.89732 15.80863,-13.74323 2.5421,-2.46263 5.48137,-4.36922 8.73845,-5.71971 9.05619,-3.81312 18.74796,-6.27575 28.59854,-7.22908 3.65424,-0.31751 7.46742,-0.63551 11.20113,-0.79438 2.22429,-0.15907 4.5281,-0.39735 6.75238,-0.95327 2.62157,-0.71498 6.11694,-1.50936 9.6123,-2.38322 3.6543,-1.03274 6.1964,-1.74771 8.57957,-2.70098 4.05152,-1.50936 8.02352,-3.25708 11.91611,-5.00473 l 1.19161,0.47657 c 1.4299,0.71492 3.01873,1.11214 4.68697,1.27102 5.24308,0.23829 10.56557,-0.31751 15.64977,-1.82712 l 4.36922,-1.19161 2.14487,-0.63551 2.14488,-0.71498 3.01873,-0.95326 2.70098,-0.87386 c 1.98606,-0.55641 3.97205,-1.19161 6.03746,-1.82712 3.0982,-0.87386 4.92532,-1.35049 6.83191,-1.74771 l -1.11214,1.98599 -6.43469,12.47216 -6.59356,12.31327 -0.0792,0.23829 -1.66824,0.31751 c -1.27108,0.15906 -2.5421,0.47657 -3.73371,0.95332 -4.76645,1.90653 -9.29454,4.36922 -13.34601,7.46736 -1.35049,1.11221 -2.5421,2.46269 -3.25702,4.13094 -0.15906,0.31751 -0.47657,0.71498 -0.71498,1.03273 -0.23828,0.23829 -0.31751,0.5558 -0.31751,0.8738 0,0.39734 0.23829,0.87385 0.63551,1.1122 0.71498,0.39735 1.50937,0.87386 2.30376,1.27102 0.15906,0.0792 0.47657,0.15906 0.71498,0.23828 0.87385,0.0792 1.74771,0.15907 2.70097,0.15907 1.11221,0.0792 2.22435,0.15906 3.41596,0.23828 1.03273,0.0792 1.986,0 2.85985,-0.31751 1.50937,-0.47657 3.09814,-1.03273 4.60757,-1.74765 1.986,-0.95333 3.89253,-1.98606 5.71971,-3.17767 1.4299,-0.95327 2.78039,-2.06541 3.972,-3.33649 0.63551,-0.63551 2.38322,-2.46263 4.13087,-4.36922 5.00479,-5.16361 8.02352,-8.65897 10.88338,-12.2338 2.38316,-2.93933 4.5281,-5.95806 6.75244,-8.97679 1.986,-2.85986 3.81312,-5.6403 5.48136,-8.57956 0.87386,-1.42996 1.58884,-2.85986 2.38323,-4.36922 0.63551,-1.27109 1.11214,-2.70098 1.27101,-4.05147 0.31751,-1.58884 0,-3.25708 -0.79438,-4.60757 -0.63551,-0.95326 -1.42996,-1.66824 -2.46263,-2.22428 -0.55641,-0.23829 -1.11221,-0.39735 -1.74772,-0.55641 -0.39734,-0.0792 -0.79438,-0.23829 -1.19161,-0.47657 -1.11214,-0.79445 -2.38322,-1.35049 -3.73371,-1.66824 -0.55641,-0.15907 -1.27102,-0.23829 -1.90653,-0.23829 l -5.00479,0.15906 -2.70097,0.15906 -4.28976,0.15907 -10.16839,0 -4.05147,0.15906 c -4.8547,0.20942 -9.70939,1.08125 -14.23307,2.43837 z" + style="fill:#000000" /> + </g> +</svg> diff --git a/projects/grub/install/corebootfb/grub.cfg b/projects/grub/install/corebootfb/grub.cfg new file mode 100644 index 00000000..f61e2684 --- /dev/null +++ b/projects/grub/install/corebootfb/grub.cfg @@ -0,0 +1,172 @@ +insmod nativedisk +insmod ehci +insmod ohci +insmod uhci +insmod usb +insmod usbms +insmod usbserial_pl2303 +insmod usbserial_ftdi +insmod usbserial_usbdebug +insmod png + +# Serial and keyboard configuration, very important. +serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 +terminal_input --append serial +terminal_output --append serial +terminal_input --append at_keyboard +terminal_output --append cbmemc +terminal_output --append gfxterm + +load_env --file (cbfsdisk)/grubenv + +# User's preferred keyboard layout +if [ -n "${keymap}" ]; then + keymap "${keymap}" +fi + +# Prettify GRUB +background_image "${gfxterm_background}" + +function try_user_config { + set root="${1}" + for dir in boot grub grub2 boot/grub boot/grub2; do + for name in libreboot_ autoboot_ librecore_ coreboot_ ''; do + if [ -f /"${dir}"/"${name}"grub.cfg ]; then + unset superusers + configfile /"${dir}"/"${name}"grub.cfg + fi + done + done +} + +function search_grub { + for i in 0 1; do + # raw devices + try_user_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_user_config "(${1}${i},${part})" + done + done +} + +function try_isolinux_config { + set root="${1}" + for dir in '' /boot; do + if [ -f "${dir}"/isolinux/isolinux.cfg ]; then + syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg + elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then + syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg + fi + done +} + +function search_isolinux { + for i in 0 1; do + # raw devices + try_isolinux_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_isolinux_config "(${1}${i},${part})" + done + done +} + +menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' { +# GRUB2 handles (almost) every possible disk setup, but only the location of +# /boot is actually important since GRUB2 only loads the user's config. + +# LVM, RAID, filesystems and encryption on both raw devices and partitions in +# all various combinations need to be supported. Since full disk encryption is +# possible with GRUB2 as payload and probably even used by most users, this +# configuration tries to load the operating system in the following way: + +# 1. Look for user configuration on unencrypted devices first to avoid +# unnecessary decryption routines in the following order: + +# 1) raw devices and MBR/GPT partitions + search_grub ahci + search_grub ata +# 2) LVM and RAID which might be used accross multiple devices + lvm="lvm/matrix-rootvol lvm/matrix-boot" + raid="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9" + for vol in ${lvm} ${raid}; do + try_user_config "(${vol})" + done +# 2. In case no configuration could be found, try decrypting devices. Look +# on raw crypto devices as well as inside LVM volumes this time. + +# The user will be prompted for a passphrase if a LUKS header was found. + for dev in ahci0 ata0 usb0 ${lvm}; do + cryptomount "(${dev})" + done +# 3) encrypted devices/partitions + for i in 0 1; do + for part in 1 2 3 4 5; do + for type in ahci ata; do + cryptomount "(${type}${i},${part})" + done + done + done + +# 3) encrypted devices/partitions + search_grub crypto +# 4) LVM inside LUKS containers + for vol in ${lvm}; do + try_user_config "(${vol})" + done + + # Last resort, if all else fails + set root=ahci0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done + + # Last resort (for GA-G41-ES2L which uses IDE emulation mode for SATA) + set root=ata0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done +} + +menuentry 'Search ISOLINUX menu (AHCI) [a]' --hotkey='a' { + search_isolinux ahci +} + +menuentry 'Search ISOLINUX menu (USB) [u]' --hotkey='u' { + search_isolinux usb +} + +menuentry 'Search ISOLINUX menu (CD/DVD) [d]' --hotkey='d' { + insmod ata + for dev in ata0 ata1 ata2 ata3 ahci1; do + try_isolinux_config "(${dev})" + done +} + +menuentry 'Load test configuration (grubtest.cfg) inside of CBFS [t]' --hotkey='t' { + set root='(cbfsdisk)' + configfile /grubtest.cfg +} + +menuentry 'Search for GRUB2 configuration on external media [s]' --hotkey='s' { + search_grub usb +} + +menuentry 'Poweroff [p]' --hotkey='p' { + halt +} + +menuentry 'Reboot [r]' --hotkey='r' { + reboot +} diff --git a/projects/grub/install/corebootfb/grubtest.cfg b/projects/grub/install/corebootfb/grubtest.cfg new file mode 100644 index 00000000..50beb915 --- /dev/null +++ b/projects/grub/install/corebootfb/grubtest.cfg @@ -0,0 +1,172 @@ +insmod nativedisk +insmod ehci +insmod ohci +insmod uhci +insmod usb +insmod usbms +insmod usbserial_pl2303 +insmod usbserial_ftdi +insmod usbserial_usbdebug +insmod png + +# Serial and keyboard configuration, very important. +serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 +terminal_input --append serial +terminal_output --append serial +terminal_input --append at_keyboard +terminal_output --append cbmemc +terminal_output --append gfxterm + +load_env --file (cbfsdisk)/grubenv + +# User's preferred keyboard layout +if [ -n "${keymap}" ]; then + keymap "${keymap}" +fi + +# Prettify GRUB +background_image "${gfxterm_background}" + +function try_user_config { + set root="${1}" + for dir in boot grub grub2 boot/grub boot/grub2; do + for name in libreboot_ autoboot_ librecore_ coreboot_ ''; do + if [ -f /"${dir}"/"${name}"grub.cfg ]; then + unset superusers + configfile /"${dir}"/"${name}"grub.cfg + fi + done + done +} + +function search_grub { + for i in 0 1; do + # raw devices + try_user_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_user_config "(${1}${i},${part})" + done + done +} + +function try_isolinux_config { + set root="${1}" + for dir in '' /boot; do + if [ -f "${dir}"/isolinux/isolinux.cfg ]; then + syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg + elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then + syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg + fi + done +} + +function search_isolinux { + for i in 0 1; do + # raw devices + try_isolinux_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_isolinux_config "(${1}${i},${part})" + done + done +} + +menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' { +# GRUB2 handles (almost) every possible disk setup, but only the location of +# /boot is actually important since GRUB2 only loads the user's config. + +# LVM, RAID, filesystems and encryption on both raw devices and partitions in +# all various combinations need to be supported. Since full disk encryption is +# possible with GRUB2 as payload and probably even used by most users, this +# configuration tries to load the operating system in the following way: + +# 1. Look for user configuration on unencrypted devices first to avoid +# unnecessary decryption routines in the following order: + +# 1) raw devices and MBR/GPT partitions + search_grub ahci + search_grub ata +# 2) LVM and RAID which might be used accross multiple devices + lvm="lvm/matrix-rootvol lvm/matrix-boot" + raid="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9" + for vol in ${lvm} ${raid}; do + try_user_config "(${vol})" + done +# 2. In case no configuration could be found, try decrypting devices. Look +# on raw crypto devices as well as inside LVM volumes this time. + +# The user will be prompted for a passphrase if a LUKS header was found. + for dev in ahci0 ata0 usb0 ${lvm}; do + cryptomount "(${dev})" + done +# 3) encrypted devices/partitions + for i in 0 1; do + for part in 1 2 3 4 5; do + for type in ahci ata; do + cryptomount "(${type}${i},${part})" + done + done + done + +# 3) encrypted devices/partitions + search_grub crypto +# 4) LVM inside LUKS containers + for vol in ${lvm}; do + try_user_config "(${vol})" + done + + # Last resort, if all else fails + set root=ahci0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done + + # Last resort (for GA-G41-ES2L which uses IDE emulation mode for SATA) + set root=ata0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done +} + +menuentry 'Search ISOLINUX menu (AHCI) [a]' --hotkey='a' { + search_isolinux ahci +} + +menuentry 'Search ISOLINUX menu (USB) [u]' --hotkey='u' { + search_isolinux usb +} + +menuentry 'Search ISOLINUX menu (CD/DVD) [d]' --hotkey='d' { + insmod ata + for dev in ata0 ata1 ata2 ata3 ahci1; do + try_isolinux_config "(${dev})" + done +} + +menuentry 'Load standard configuration (grub.cfg) inside of CBFS [t]' --hotkey='t' { + set root='(cbfsdisk)' + configfile /grub.cfg +} + +menuentry 'Search for GRUB2 configuration on external media [s]' --hotkey='s' { + search_grub usb +} + +menuentry 'Poweroff [p]' --hotkey='p' { + halt +} + +menuentry 'Reboot [r]' --hotkey='r' { + reboot +} diff --git a/projects/grub/install/grubenv b/projects/grub/install/grubenv new file mode 100644 index 00000000..3c4b0022 --- /dev/null +++ b/projects/grub/install/grubenv @@ -0,0 +1,17 @@ +# GRUB Environment Block +color_highlight=black/white +color_normal=white/black +default=0 +gfxpayload=keep +gfxterm_background=(cbfsdisk)/background.png +gfxterm_font=(cbfsdisk)/fonts/dejavusansmono.pf2 +i_want_a_brick= +keymap=(cbfsdisk)/keymaps/default.gkb +lang= +locale_dir=(cbfsdisk)/locale +menu_color_highlight=black/white +menu_color_normal=white/black +pager=1 +timeout=1 +timeout_style=menu +#############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
\ No newline at end of file diff --git a/projects/grub/install/install b/projects/grub/install/install new file mode 100644 index 00000000..31fd22fa --- /dev/null +++ b/projects/grub/install/install @@ -0,0 +1,7 @@ +grubenv:grubenv +textmode/grub.cfg:textmode/grub.cfg +textmode/grubtest.cfg:textmode/grubtest.cfg +corebootfb/grub.cfg:corebootfb/grub.cfg +corebootfb/grubtest.cfg:corebootfb/grubtest.cfg +corebootfb/background/background1024x768.png:corebootfb/background/background1024x768.png +corebootfb/background/background1280x800.png:corebootfb/background/background1280x800.png diff --git a/projects/grub/install/textmode/AUTHORS b/projects/grub/install/textmode/AUTHORS new file mode 100644 index 00000000..0157cfed --- /dev/null +++ b/projects/grub/install/textmode/AUTHORS @@ -0,0 +1,2 @@ +Copyright (C) 2014, 2015, 2016 Leah Rowe <info@minifree.org> +Copyright (C) 2015 Klemens Nanni <contact@autoboot.org> diff --git a/projects/grub/install/textmode/COPYING b/projects/grub/install/textmode/COPYING new file mode 100644 index 00000000..a41d4868 --- /dev/null +++ b/projects/grub/install/textmode/COPYING @@ -0,0 +1,695 @@ +# GRUB configuration files under projects/grub/install + +# 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 3 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, see <http://www.gnu.org/licenses/>. +# + +# See AUTHORS for copyright holder information. + +# Full terms of GPLv3 below, taken from https://www.gnu.org/licenses/licenses.html +________________________________________________________________________ + + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + <one line to give the program's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + 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 3 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, see <http://www.gnu.org/licenses/>. + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + <program> Copyright (C) <year> <name of author> + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +<http://www.gnu.org/licenses/>. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +<http://www.gnu.org/philosophy/why-not-lgpl.html>. diff --git a/projects/grub/install/textmode/grub.cfg b/projects/grub/install/textmode/grub.cfg new file mode 100644 index 00000000..90946c01 --- /dev/null +++ b/projects/grub/install/textmode/grub.cfg @@ -0,0 +1,172 @@ +insmod nativedisk +insmod ehci +insmod ohci +insmod uhci +insmod usb +insmod usbms +insmod usbserial_pl2303 +insmod usbserial_ftdi +insmod usbserial_usbdebug + +# Serial and keyboard configuration, very important. +serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 +terminal_input --append serial +terminal_output --append serial +terminal_input --append at_keyboard +terminal_output --append cbmemc +terminal_output --append gfxterm + +load_env --file (cbfsdisk)/grubenv + +# User's preferred keyboard layout +if [ -n "${keymap}" ]; then + keymap "${keymap}" +fi + +function try_user_config { + set root="${1}" + for dir in boot grub grub2 boot/grub boot/grub2; do + for name in libreboot_ autoboot_ librecore_ coreboot_ ''; do + if [ -f /"${dir}"/"${name}"grub.cfg ]; then + unset superusers + configfile /"${dir}"/"${name}"grub.cfg + fi + done + done +} + +function search_grub { + for i in 0 1; do + # raw devices + try_user_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_user_config "(${1}${i},${part})" + done + done +} + +function try_isolinux_config { + set root="${1}" + for dir in '' /boot; do + if [ -f "${dir}"/isolinux/isolinux.cfg ]; then + syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg + elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then + syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg + fi + done +} + +function search_isolinux { + for i in 0 1; do + # raw devices + try_isolinux_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_isolinux_config "(${1}${i},${part})" + done + done +} + +menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' { +# GRUB2 handles (almost) every possible disk setup, but only the location of +# /boot is actually important since GRUB2 only loads the user's config. + +# LVM, RAID, filesystems and encryption on both raw devices and partitions in +# all various combinations need to be supported. Since full disk encryption is +# possible with GRUB2 as payload and probably even used by most users, this +# configuration tries to load the operating system in the following way: + +# 1. Look for user configuration on unencrypted devices first to avoid +# unnecessary decryption routines in the following order: + +# 1) raw devices and MBR/GPT partitions + search_grub ahci + search_grub ata +# 2) LVM and RAID which might be used accross multiple devices + lvm="lvm/matrix-rootvol lvm/matrix-boot" + raid="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9" + for vol in ${lvm} ${raid}; do + try_user_config "(${vol})" + done +# 2. In case no configuration could be found, try decrypting devices. Look +# on raw crypto devices as well as inside LVM volumes this time. + +# The user will be prompted for a passphrase if a LUKS header was found. + for dev in ahci0 ata0 usb0 ${lvm}; do + cryptomount "(${dev})" + done +# 3) encrypted devices/partitions + for i in 0 1; do + for part in 1 2 3 4 5; do + for type in ahci ata; do + cryptomount "(${type}${i},${part})" + done + done + done + +# 3) encrypted devices/partitions + search_grub crypto +# 4) LVM inside LUKS containers + for vol in ${lvm}; do + try_user_config "(${vol})" + done + + # Last resort, if all else fails + set root=ahci0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done + + # Last resort (for GA-G41-ES2L which uses IDE emulation mode for SATA) + set root=ata0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done +} + +menuentry 'Search ISOLINUX menu (AHCI) [a]' --hotkey='a' { + search_isolinux ahci +} + +menuentry 'Search ISOLINUX menu (USB) [u]' --hotkey='u' { + search_isolinux usb +} + +menuentry 'Search ISOLINUX menu (CD/DVD) [d]' --hotkey='d' { + insmod ata + for dev in ata0 ata1 ata2 ata3 ahci1; do + try_isolinux_config "(${dev})" + done +} + +menuentry 'Load test configuration (grubtest.cfg) inside of CBFS [t]' --hotkey='t' { + set root='(cbfsdisk)' + configfile /grubtest.cfg +} + +menuentry 'Search for GRUB2 configuration on external media [s]' --hotkey='s' { + search_grub usb +} + +menuentry 'Load MemTest86+ [m]' --hotkey='m' { + linux16 (cbfsdisk)/memtest.bin +} + +menuentry 'Poweroff [p]' --hotkey='p' { + halt +} + +menuentry 'Reboot [r]' --hotkey='r' { + reboot +} diff --git a/projects/grub/install/textmode/grubtest.cfg b/projects/grub/install/textmode/grubtest.cfg new file mode 100644 index 00000000..d9ab637d --- /dev/null +++ b/projects/grub/install/textmode/grubtest.cfg @@ -0,0 +1,172 @@ +insmod nativedisk +insmod ehci +insmod ohci +insmod uhci +insmod usb +insmod usbms +insmod usbserial_pl2303 +insmod usbserial_ftdi +insmod usbserial_usbdebug + +# Serial and keyboard configuration, very important. +serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1 +terminal_input --append serial +terminal_output --append serial +terminal_input --append at_keyboard +terminal_output --append cbmemc +terminal_output --append gfxterm + +load_env --file (cbfsdisk)/grubenv + +# User's preferred keyboard layout +if [ -n "${keymap}" ]; then + keymap "${keymap}" +fi + +function try_user_config { + set root="${1}" + for dir in boot grub grub2 boot/grub boot/grub2; do + for name in libreboot_ autoboot_ librecore_ coreboot_ ''; do + if [ -f /"${dir}"/"${name}"grub.cfg ]; then + unset superusers + configfile /"${dir}"/"${name}"grub.cfg + fi + done + done +} + +function search_grub { + for i in 0 1; do + # raw devices + try_user_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_user_config "(${1}${i},${part})" + done + done +} + +function try_isolinux_config { + set root="${1}" + for dir in '' /boot; do + if [ -f "${dir}"/isolinux/isolinux.cfg ]; then + syslinux_configfile -i "${dir}"/isolinux/isolinux.cfg + elif [ -f "${dir}"/syslinux/syslinux.cfg ]; then + syslinux_configfile -s "${dir}"/syslinux/syslinux.cfg + fi + done +} + +function search_isolinux { + for i in 0 1; do + # raw devices + try_isolinux_config "(${1}${i})" + for part in 1 2 3 4 5; do + # MBR/GPT partitions + try_isolinux_config "(${1}${i},${part})" + done + done +} + +menuentry 'Load Operating System (incl. fully encrypted disks) [o]' --hotkey='o' { +# GRUB2 handles (almost) every possible disk setup, but only the location of +# /boot is actually important since GRUB2 only loads the user's config. + +# LVM, RAID, filesystems and encryption on both raw devices and partitions in +# all various combinations need to be supported. Since full disk encryption is +# possible with GRUB2 as payload and probably even used by most users, this +# configuration tries to load the operating system in the following way: + +# 1. Look for user configuration on unencrypted devices first to avoid +# unnecessary decryption routines in the following order: + +# 1) raw devices and MBR/GPT partitions + search_grub ahci + search_grub ata +# 2) LVM and RAID which might be used accross multiple devices + lvm="lvm/matrix-rootvol lvm/matrix-boot" + raid="md/0 md/1 md/2 md/3 md/4 md/5 md/6 md/7 md/8 md/9" + for vol in ${lvm} ${raid}; do + try_user_config "(${vol})" + done +# 2. In case no configuration could be found, try decrypting devices. Look +# on raw crypto devices as well as inside LVM volumes this time. + +# The user will be prompted for a passphrase if a LUKS header was found. + for dev in ahci0 ata0 usb0 ${lvm}; do + cryptomount "(${dev})" + done +# 3) encrypted devices/partitions + for i in 0 1; do + for part in 1 2 3 4 5; do + for type in ahci ata; do + cryptomount "(${type}${i},${part})" + done + done + done + +# 3) encrypted devices/partitions + search_grub crypto +# 4) LVM inside LUKS containers + for vol in ${lvm}; do + try_user_config "(${vol})" + done + + # Last resort, if all else fails + set root=ahci0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done + + # Last resort (for GA-G41-ES2L which uses IDE emulation mode for SATA) + set root=ata0,1 + for p in / /boot/; do + if [ -f "${p}vmlinuz" ]; then + linux ${p}vmlinuz root=/dev/sda1 rw + if [ -f "${p}initrd.img" ]; then + initrd ${p}initrd.img + fi + fi + done +} + +menuentry 'Search ISOLINUX menu (AHCI) [a]' --hotkey='a' { + search_isolinux ahci +} + +menuentry 'Search ISOLINUX menu (USB) [u]' --hotkey='u' { + search_isolinux usb +} + +menuentry 'Search ISOLINUX menu (CD/DVD) [d]' --hotkey='d' { + insmod ata + for dev in ata0 ata1 ata2 ata3 ahci1; do + try_isolinux_config "(${dev})" + done +} + +menuentry 'Load standard configuration (grub.cfg) inside of CBFS [t]' --hotkey='t' { + set root='(cbfsdisk)' + configfile /grub.cfg +} + +menuentry 'Search for GRUB2 configuration on external media [s]' --hotkey='s' { + search_grub usb +} + +menuentry 'Load MemTest86+ [m]' --hotkey='m' { + linux16 (cbfsdisk)/memtest.bin +} + +menuentry 'Poweroff [p]' --hotkey='p' { + halt +} + +menuentry 'Reboot [r]' --hotkey='r' { + reboot +} diff --git a/projects/grub/patches/0001-grub-core-normal-main.c-Display-FREE-AS-IN-FREEDOM-n.patch b/projects/grub/patches/0001-grub-core-normal-main.c-Display-FREE-AS-IN-FREEDOM-n.patch new file mode 100644 index 00000000..cba69991 --- /dev/null +++ b/projects/grub/patches/0001-grub-core-normal-main.c-Display-FREE-AS-IN-FREEDOM-n.patch @@ -0,0 +1,26 @@ +From 721f09ef24e1879667ac3469c17774450602b29e Mon Sep 17 00:00:00 2001 +From: Leah Rowe <info@minifree.org> +Date: Sat, 14 Feb 2015 01:24:23 +0000 +Subject: [PATCH 01/10] grub-core/normal/main.c: Display "FREE AS IN FREEDOM", + not version + +--- + grub-core/normal/main.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index 78a70a8..982bde3 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -208,7 +208,7 @@ grub_normal_init_page (struct grub_term_output *term, + + grub_term_cls (term); + +- msg_formatted = grub_xasprintf (_("GNU GRUB version %s"), PACKAGE_VERSION); ++ msg_formatted = grub_xasprintf("FREE AS IN FREEDOM"); + if (!msg_formatted) + return; + +-- +1.9.1 + diff --git a/projects/hdctools/hdctools b/projects/hdctools/hdctools index f48b8a1e..9a7abdf0 100755 --- a/projects/hdctools/hdctools +++ b/projects/hdctools/hdctools @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/libpayload/configs/depthcharge/veyron/targets b/projects/libpayload/configs/depthcharge/veyron/targets new file mode 100644 index 00000000..1722192f --- /dev/null +++ b/projects/libpayload/configs/depthcharge/veyron/targets @@ -0,0 +1,2 @@ +minnie +speedy diff --git a/projects/libpayload/libpayload b/projects/libpayload/libpayload index 60cc43c9..06c239dd 100755 --- a/projects/libpayload/libpayload +++ b/projects/libpayload/libpayload @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -39,16 +39,14 @@ build() { local build_path=$( project_build_path "$project" "$@" ) local build_install_path="$build_path/install" - local config=$( libpayload_config "$@" ) - local config_path="configs/$config" + local config_name=$( libpayload_config "$@" ) + local config_path="$sources_path/configs/$config_name" local arch=$( libpayload_arch "$@" ) local crossgcc_build_path=$( project_build_path "crossgcc" "$arch" ) local crossgcc_bin_path="$crossgcc_build_path/bin/" - project_action "build" "crossgcc" "$arch" - rm -f "$sources_path/.xcompile" mkdir -p "$build_path" diff --git a/projects/libpayload/libpayload-helper b/projects/libpayload/libpayload-helper index 05970932..a007aa2d 100755 --- a/projects/libpayload/libpayload-helper +++ b/projects/libpayload/libpayload-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/libreboot-all/libreboot-all b/projects/libreboot-all/libreboot-all index 3f0b0e83..41d4c8f3 100755 --- a/projects/libreboot-all/libreboot-all +++ b/projects/libreboot-all/libreboot-all @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/libreboot-images/libreboot-images b/projects/libreboot-images/libreboot-images index 3f0b0e83..41d4c8f3 100755 --- a/projects/libreboot-images/libreboot-images +++ b/projects/libreboot-images/libreboot-images @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/libreboot-release/install/libreboot-release b/projects/libreboot-release/install/libreboot-release index b916adac..08c4d64b 100644 --- a/projects/libreboot-release/install/libreboot-release +++ b/projects/libreboot-release/install/libreboot-release @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -22,23 +22,23 @@ SYSTEMS="systems" IMAGES="images" TOOLS="tools" -TAR_XZ="tar.xz" -SHA256SUM="sha256sum" +ARCHIVE="tar.xz" +CHECKSUM="sha256sum" ASC="asc" usage() { - printf "$executable [action] [projects...]\n" >&2 - - printf "\nActions:\n" >&2 - printf " download - Download project files\n" >&2 - printf " sources - Download project sources\n" >&2 - printf " verify - Verify project files\n" >&2 - printf " extract - Extract project files\n" >&2 - printf " prepare - Download, verify and extract project files\n" >&2 - - printf "\nEnvironment variables:\n" >&2 - printf " MACHINE - Machine architecture to use\n" >&2 - printf " DOWNLOAD_URL - Base URL to download files from\n" >&2 + printf '%s\n' "$executable [action] [projects...]" >&2 + + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' download - Download project files' >&2 + printf '%s\n' ' sources - Download project sources' >&2 + printf '%s\n' ' verify - Verify project files' >&2 + printf '%s\n' ' extract - Extract project files' >&2 + printf '%s\n' ' prepare - Download, verify and extract project files' >&2 + + printf '\n%s\n' 'Environment variables:' >&2 + printf '%s\n' ' MACHINE - Machine architecture to use' >&2 + printf '%s\n' ' DOWNLOAD_URL - Base URL to download files from' >&2 } download() { @@ -66,17 +66,17 @@ download() { directory="$directory-$part" fi - path="$root/$prefix/$directory/$project.$TAR_XZ" - url="$DOWNLOAD_URL/$prefix/$directory/$project.$TAR_XZ" + path="$root/$prefix/$directory/$project.$ARCHIVE" + url="$DOWNLOAD_URL/$prefix/$directory/$project.$ARCHIVE" if wget --quiet --spider "$url" then mkdir -p "$( dirname "$path" )" wget -O "$path" "$url" - wget -O "$path.$SHA256SUM" "$url.$SHA256SUM" - wget -O "$path.$ASC" "$url.$ASC" + wget -O "$path.$CHECKSUM" "$url.$CHECKSUM" + wget -O "$path.$DSIG" "$url.$DSIG" - printf "\nDownloaded $project\n" + printf '\n%s\n' "Downloaded $project" return 0 fi @@ -85,26 +85,26 @@ download() { IFS=$ifs_save done - printf "Could not download $project from $DOWNLOAD_URL\n" >&2 + printf '%s\n' "Could not download $project from $DOWNLOAD_URL" >&2 return 1 } sources() { local project=$1 - local url="$DOWNLOAD_URL/$SOURCES/$project/$project.$TAR_XZ" - local path="$root/$SOURCES/$project/$project.$TAR_XZ" + local url="$DOWNLOAD_URL/$SOURCES/$project/$project.$ARCHIVE" + local path="$root/$SOURCES/$project/$project.$ARCHIVE" if wget --quiet --spider "$url" then mkdir -p "$( dirname "$path" )" wget -O "$path" "$url" - wget -O "$path.$SHA256SUM" "$url.$SHA256SUM" - wget -O "$path.$ASC" "$url.$ASC" + wget -O "$path.$CHECKSUM" "$url.$CHECKSUM" + wget -O "$path.$DSIG" "$url.$DSIG" - printf "\nDownloaded $project sources\n" + printf '\n%s\n' "Downloaded $project sources" else - printf "Could not download $project sources from $DOWNLOAD_URL\n" >&2 + printf '%s\n' "Could not download $project sources from $DOWNLOAD_URL" >&2 return 1 fi @@ -136,34 +136,34 @@ verify() { directory="$directory-$part" fi - path="$root/$prefix/$directory/$project.$TAR_XZ" + path="$root/$prefix/$directory/$project.$ARCHIVE" if ! [ -f "$path" ] then continue fi - checksum_path="$path.$SHA256SUM" - signature_path="$path.$ASC" + checksum_path="$path.$CHECKSUM" + signature_path="$path.$DSIG" if [ -f "$checksum_path" ] then ( cd "$( dirname "$path" )" - sha256sum -c "$project.$TAR_XZ.$SHA256SUM" + sha256sum -c "$project.$ARCHIVE.$CHECKSUM" ) else - printf "Could not verify $project checksum!\n" >&2 + printf '%s\n' "Could not verify $project checksum!" >&2 fi if [ -f "$signature_path" ] then gpg --armor --verify "$signature_path" "$path" else - printf "Could not verify $project signature!\n" >&2 + printf '%s\n' "Could not verify $project signature!" >&2 fi - printf "\nVerified $project\n" + printf '\n%s\n' "Verified $project" return 0 done @@ -171,7 +171,7 @@ verify() { IFS=$ifs_save done - printf "Could not verify $project\n" >&2 + printf '%s\n' "Could not verify $project" >&2 return 1 } @@ -200,7 +200,7 @@ extract() { directory="$directory-$part" fi - path="$root/$prefix/$directory/$project.$TAR_XZ" + path="$root/$prefix/$directory/$project.$ARCHIVE" if ! [ -f "$path" ] then @@ -209,7 +209,7 @@ extract() { if [ "$prefix" = "$SYSTEMS/$MACHINE" ] then - printf "Skiping $project extract\n" + printf '%s\n' "Skiping $project extract" return 0 fi @@ -217,7 +217,7 @@ extract() { tar -xf "$path" -ps -C "$extract_path" - printf "Extracted $project\n" + printf '%s\n' "Extracted $project" return 0 done @@ -225,7 +225,7 @@ extract() { IFS=$ifs_save done - printf "Could not extract $project\n" >&2 + printf '%s\n' "Could not extract $project" >&2 return 1 } @@ -239,7 +239,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done @@ -256,7 +256,7 @@ setup() { if [ -z "$DOWNLOAD_URL" ] then - printf "Missing download URL\n" >&2 + printf '%s\n' 'Missing download URL' >&2 exit 1 fi } diff --git a/projects/libreboot-release/libreboot-release b/projects/libreboot-release/libreboot-release index 9ec5399d..d693f503 100755 --- a/projects/libreboot-release/libreboot-release +++ b/projects/libreboot-release/libreboot-release @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/libreboot-sources/install/libreboot-sources b/projects/libreboot-sources/install/libreboot-sources index d2f19753..d836054d 100755 --- a/projects/libreboot-sources/install/libreboot-sources +++ b/projects/libreboot-sources/install/libreboot-sources @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -18,18 +18,18 @@ BUILD_SYSTEM="libreboot" SOURCES="sources" -TAR_XZ="tar.xz" +ARCHIVE="tar.xz" usage() { - printf "$executable [action] [sources path] (extract path)\n" >&2 + printf '%s\n' "$executable [action] [sources path] (extract path)" >&2 - printf "\nActions:\n" >&2 - printf " extract - Extract build system sources\n" >&2 - printf " copy - Copy projects sources\n" >&2 - printf " prepare - Extract and copy sources\n" >&2 + printf '\n%s\n' 'Actions:' >&2 + printf '%s\n' ' extract - Extract build system sources' >&2 + printf '%s\n' ' copy - Copy projects sources' >&2 + printf '%s\n' ' prepare - Extract and copy sources' >&2 - printf "\n When no extract path is provided, sources are extracted in the current\n" - printf " directory.\n" + printf '\n%s\n' ' When no extract path is provided, sources are extracted in the current' + printf '%s\n' ' directory.' } extract() { @@ -46,17 +46,17 @@ extract() { return fi - archive=$( find $sources_path -name "$BUILD_SYSTEM-sources.$TAR_XZ" || true ) + archive=$( find $sources_path -name "$BUILD_SYSTEM-sources.$ARCHIVE" || true ) if [ -z "$archive" ] then - printf "Finding $BUILD_SYSTEM sources archive failed!\n" >&2 + printf '%s\n' "Finding $BUILD_SYSTEM sources archive failed!" >&2 usage exit 1 fi tar -xf "$archive" -ps -C "$extract_path" - printf "\nExtracted $BUILD_SYSTEM sources from $sources_path to $extract_path\n" + printf '\n%s\n' "Extracted $BUILD_SYSTEM sources from $sources_path to $extract_path" } copy() { @@ -83,7 +83,7 @@ copy() { cp "$file" "$build_system_sources_path" done - printf "\nCopied $BUILD_SYSTEM sources from $sources_path to $extract_path\n" + printf '\n%s\n' "Copied $BUILD_SYSTEM sources from $sources_path to $extract_path" } requirements() { @@ -96,7 +96,7 @@ requirements() { if [ -z "$requirement_path" ] then - printf "Missing requirement: $requirement\n" >&2 + printf '%s\n' "Missing requirement: $requirement" >&2 exit 1 fi done diff --git a/projects/libreboot-sources/libreboot-sources b/projects/libreboot-sources/libreboot-sources index a7fa5435..3dc1cb7d 100755 --- a/projects/libreboot-sources/libreboot-sources +++ b/projects/libreboot-sources/libreboot-sources @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -38,8 +38,8 @@ release() { project_release_install "$project" "$TOOLS" "$@" - echo "$VERSION" > "$sources_path/$DOTVERSION" - echo "$SOURCE_DATE_EPOCH" > "$sources_path/$DOTEPOCH" + printf '%s\n' "$VERSION" > "$sources_path/$DOTVERSION" + printf '%s\n' "$SOURCE_DATE_EPOCH" > "$sources_path/$DOTEPOCH" if git_check "$sources_path" then diff --git a/projects/libreboot-tools/libreboot-tools b/projects/libreboot-tools/libreboot-tools index 3f0b0e83..41d4c8f3 100755 --- a/projects/libreboot-tools/libreboot-tools +++ b/projects/libreboot-tools/libreboot-tools @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/memtest86plus/configs/install b/projects/memtest86plus/configs/install new file mode 100644 index 00000000..4092a417 --- /dev/null +++ b/projects/memtest86plus/configs/install @@ -0,0 +1 @@ +memtest:memtest.elf diff --git a/projects/memtest86plus/configs/revision b/projects/memtest86plus/configs/revision new file mode 100644 index 00000000..e16bc904 --- /dev/null +++ b/projects/memtest86plus/configs/revision @@ -0,0 +1 @@ +1fa69864d4c0aa46bb3ebd7feb966c882fb81a84 diff --git a/projects/memtest86plus/configs/targets b/projects/memtest86plus/configs/targets new file mode 100644 index 00000000..f2cba0e5 --- /dev/null +++ b/projects/memtest86plus/configs/targets @@ -0,0 +1,2 @@ +grub +seabios diff --git a/projects/memtest86plus/memtest86plus b/projects/memtest86plus/memtest86plus new file mode 100755 index 00000000..1aadbf6c --- /dev/null +++ b/projects/memtest86plus/memtest86plus @@ -0,0 +1,110 @@ +#!/usr/bin/env bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +download() { + local repository="$project" + + project_download_git "$project" "$repository" 'https://review.coreboot.org/memtest86plus.git' "$@" +} + +download_check() { + local repository="$project" + + project_download_check_git "$project" "$repository" "$@" +} + +extract() { + local repository="$project" + + project_extract "$project" "$@" +} + +extract_check() { + local repository="$project" + + project_extract_check "$project" "$@" +} + +update() { + local repository="$project" + + project_update_git "$project" "$repository" "$@" +} + +update_check() { + local repository="$project" + + project_update_check_git "$project" "$repository" "$@" +} + +build() { + local repository="$project" + + project_sources_directory_missing_empty_error "$project" "$repository" "$@" + + if git_project_check "$repository"; then + git_project_checkout "$project" "$repository" "$@" + fi + + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + + local build_path="$(project_build_path "$project" "$@")" + + mkdir -p "$build_path" + make -C "$sources_path" -j"$TASKS" + cp "$sources_path/memtest" "$build_path" + make -C "$sources_path" 'clean' +} + +build_check() { + project_build_check "$project" "$@" +} + +install() { + project_install "$project" "$@" +} + +install_check() { + project_install_check "$project" "$@" +} + +release() { + local repository="$project" + + project_release_install_archive "$project" "$TOOLS" "$@" + project_release_sources_git "$project" "$repository" "$@" +} + +release_check() { + local repository="memtest86plus" + + project_release_install_archive_check "$project" "$TOOLS" "$@" + project_release_check_sources_git "$project" "$repository" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/memtest86plus/patches/0001-turn-on-beep-mode.patch b/projects/memtest86plus/patches/0001-turn-on-beep-mode.patch new file mode 100644 index 00000000..0ad3bc3f --- /dev/null +++ b/projects/memtest86plus/patches/0001-turn-on-beep-mode.patch @@ -0,0 +1,25 @@ +From f8e0c94b546cdba083f33efd062334822240a12b Mon Sep 17 00:00:00 2001 +From: Andrew Robbins <contact@andrewrobbins.info> +Date: Fri, 30 Jun 2017 01:42:23 -0400 +Subject: [PATCH] turn on beep mode + +--- + config.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/config.h b/config.h +index 102250d..8a36fd2 100644 +--- a/config.h ++++ b/config.h +@@ -20,7 +20,7 @@ + + /* BEEP_MODE - Beep on error. Default off, Change to 1 to enable */ + #ifndef BEEP_MODE +-#define BEEP_MODE 0 ++#define BEEP_MODE 1 + #endif + + /* BEEP_END_NO_ERROR - Beep at end of each pass without error. Default off, Change to 1 to enable */ +-- +1.9.1 + diff --git a/projects/mosys/mosys b/projects/mosys/mosys index 76b9d15b..5ac27ee4 100755 --- a/projects/mosys/mosys +++ b/projects/mosys/mosys @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -66,8 +66,6 @@ build() { git_project_checkout "$project" "$repository" "$@" fi - project_action "build" "flashmap" "$@" - mkdir -p "$build_path" make -C "$sources_path" objtree="$build_path" "defconfig" diff --git a/projects/nvramtool/nvramtool b/projects/nvramtool/nvramtool index 18c2fbe5..70bf0758 100755 --- a/projects/nvramtool/nvramtool +++ b/projects/nvramtool/nvramtool @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/seabios/configs/bios/config b/projects/seabios/configs/bios/config new file mode 100644 index 00000000..cd13ec77 --- /dev/null +++ b/projects/seabios/configs/bios/config @@ -0,0 +1,91 @@ +# +# Automatically generated file; DO NOT EDIT. +# SeaBIOS Configuration +# + +# +# General Features +# +CONFIG_COREBOOT=y +# CONFIG_QEMU is not set +# CONFIG_CSM is not set +# CONFIG_QEMU_HARDWARE is not set +CONFIG_THREADS=y +CONFIG_RELOCATE_INIT=y +CONFIG_BOOTMENU=y +CONFIG_BOOTSPLASH=y +CONFIG_BOOTORDER=y +CONFIG_COREBOOT_FLASH=y +CONFIG_LZMA=y +CONFIG_CBFS_LOCATION=0 +CONFIG_MULTIBOOT=y +CONFIG_ENTRY_EXTRASTACK=y +CONFIG_MALLOC_UPPERMEMORY=y +CONFIG_ROM_SIZE=0 + +# +# Hardware support +# +CONFIG_ATA=y +# CONFIG_ATA_DMA is not set +# CONFIG_ATA_PIO32 is not set +CONFIG_AHCI=y +CONFIG_SDCARD=y +CONFIG_MEGASAS=y +CONFIG_FLOPPY=y +CONFIG_FLASH_FLOPPY=y +CONFIG_PS2PORT=y +CONFIG_USB=y +CONFIG_USB_UHCI=y +CONFIG_USB_OHCI=y +CONFIG_USB_EHCI=y +CONFIG_USB_XHCI=y +CONFIG_USB_MSC=y +CONFIG_USB_UAS=y +CONFIG_USB_HUB=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_MOUSE=y +CONFIG_SERIAL=y +CONFIG_LPT=y +CONFIG_RTC_TIMER=y +CONFIG_HARDWARE_IRQ=y +CONFIG_PMTIMER=y +CONFIG_TSC_TIMER=y + +# +# BIOS interfaces +# +CONFIG_DRIVES=y +CONFIG_CDROM_BOOT=y +CONFIG_CDROM_EMU=y +CONFIG_PCIBIOS=y +CONFIG_APMBIOS=y +CONFIG_PNPBIOS=y +CONFIG_OPTIONROMS=y +CONFIG_PMM=y +CONFIG_BOOT=y +CONFIG_KEYBOARD=y +CONFIG_KBD_CALL_INT15_4F=y +CONFIG_MOUSE=y +CONFIG_S3_RESUME=y +CONFIG_VGAHOOKS=y +# CONFIG_DISABLE_A20 is not set +CONFIG_TCGBIOS=y + +# +# VGA ROM +# +CONFIG_NO_VGABIOS=y +# CONFIG_VGA_GEODEGX2 is not set +# CONFIG_VGA_GEODELX is not set +# CONFIG_VGA_COREBOOT is not set +# CONFIG_BUILD_VGABIOS is not set +CONFIG_VGA_EXTRA_STACK_SIZE=512 + +# +# Debugging +# +CONFIG_DEBUG_LEVEL=1 +# CONFIG_DEBUG_SERIAL is not set +# CONFIG_DEBUG_SERIAL_MMIO is not set +CONFIG_DEBUG_COREBOOT=y diff --git a/projects/seabios/configs/bios/install b/projects/seabios/configs/bios/install new file mode 100644 index 00000000..9189ec8f --- /dev/null +++ b/projects/seabios/configs/bios/install @@ -0,0 +1 @@ +bios.bin.elf:bios.bin.elf diff --git a/projects/seabios/configs/revision b/projects/seabios/configs/revision new file mode 100644 index 00000000..f03e0556 --- /dev/null +++ b/projects/seabios/configs/revision @@ -0,0 +1 @@ +19fdcca467ad3436d68ef88899b4dcd78154a9c6 diff --git a/projects/seabios/configs/targets b/projects/seabios/configs/targets new file mode 100644 index 00000000..98a59a61 --- /dev/null +++ b/projects/seabios/configs/targets @@ -0,0 +1,2 @@ +bios +vgabios diff --git a/projects/seabios/configs/vgabios/config b/projects/seabios/configs/vgabios/config new file mode 100644 index 00000000..a2725409 --- /dev/null +++ b/projects/seabios/configs/vgabios/config @@ -0,0 +1,95 @@ +# +# Automatically generated file; DO NOT EDIT. +# SeaBIOS Configuration +# + +# +# General Features +# +CONFIG_COREBOOT=y +# CONFIG_QEMU is not set +# CONFIG_CSM is not set +# CONFIG_QEMU_HARDWARE is not set +CONFIG_THREADS=y +CONFIG_RELOCATE_INIT=y +CONFIG_BOOTMENU=y +CONFIG_BOOTSPLASH=y +CONFIG_BOOTORDER=y +CONFIG_COREBOOT_FLASH=y +CONFIG_LZMA=y +CONFIG_CBFS_LOCATION=0 +CONFIG_MULTIBOOT=y +CONFIG_ENTRY_EXTRASTACK=y +CONFIG_MALLOC_UPPERMEMORY=y +CONFIG_ROM_SIZE=0 + +# +# Hardware support +# +CONFIG_ATA=y +# CONFIG_ATA_DMA is not set +# CONFIG_ATA_PIO32 is not set +CONFIG_AHCI=y +CONFIG_SDCARD=y +CONFIG_MEGASAS=y +CONFIG_FLOPPY=y +CONFIG_FLASH_FLOPPY=y +CONFIG_PS2PORT=y +CONFIG_USB=y +CONFIG_USB_UHCI=y +CONFIG_USB_OHCI=y +CONFIG_USB_EHCI=y +CONFIG_USB_XHCI=y +CONFIG_USB_MSC=y +CONFIG_USB_UAS=y +CONFIG_USB_HUB=y +CONFIG_USB_KEYBOARD=y +CONFIG_USB_MOUSE=y +CONFIG_SERIAL=y +CONFIG_LPT=y +CONFIG_RTC_TIMER=y +CONFIG_HARDWARE_IRQ=y +CONFIG_PMTIMER=y +CONFIG_TSC_TIMER=y + +# +# BIOS interfaces +# +CONFIG_DRIVES=y +CONFIG_CDROM_BOOT=y +CONFIG_CDROM_EMU=y +CONFIG_PCIBIOS=y +CONFIG_APMBIOS=y +CONFIG_PNPBIOS=y +CONFIG_OPTIONROMS=y +CONFIG_PMM=y +CONFIG_BOOT=y +CONFIG_KEYBOARD=y +CONFIG_KBD_CALL_INT15_4F=y +CONFIG_MOUSE=y +CONFIG_S3_RESUME=y +CONFIG_VGAHOOKS=y +# CONFIG_DISABLE_A20 is not set +CONFIG_TCGBIOS=y + +# +# VGA ROM +# +# CONFIG_NO_VGABIOS is not set +# CONFIG_VGA_GEODEGX2 is not set +# CONFIG_VGA_GEODELX is not set +CONFIG_VGA_COREBOOT=y +CONFIG_BUILD_VGABIOS=y +CONFIG_VGA_EMULATE_TEXT=y +CONFIG_VGA_FIXUP_ASM=y +CONFIG_VGA_ALLOCATE_EXTRA_STACK=y +CONFIG_VGA_EXTRA_STACK_SIZE=512 +CONFIG_VGA_VBE=y + +# +# Debugging +# +CONFIG_DEBUG_LEVEL=1 +# CONFIG_DEBUG_SERIAL is not set +# CONFIG_DEBUG_SERIAL_MMIO is not set +CONFIG_DEBUG_COREBOOT=y diff --git a/projects/seabios/configs/vgabios/install b/projects/seabios/configs/vgabios/install new file mode 100644 index 00000000..ddc1571e --- /dev/null +++ b/projects/seabios/configs/vgabios/install @@ -0,0 +1 @@ +vgabios.bin:vgabios.bin diff --git a/projects/seabios/seabios b/projects/seabios/seabios new file mode 100755 index 00000000..ce9593b0 --- /dev/null +++ b/projects/seabios/seabios @@ -0,0 +1,118 @@ +#!/usr/bin/env bash + +# Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + project_arguments_targets "$project" "$@" +} + +usage() { + project_usage_actions "$project" + project_usage_arguments "$project" "$@" +} + +download() { + local repository="$project" + + project_download_git "$project" "$repository" 'https://review.coreboot.org/seabios.git' "$@" +} + +download_check() { + local repository="$project" + + project_download_check_git "$project" "$repository" "$@" +} + +extract() { + project_extract "$project" "$@" +} + +extract_check() { + project_extract_check "$project" "$@" +} + +update() { + local repository="$project" + + project_update_git "$project" "$repository" "$@" +} + +update_check() { + local repository="$project" + + project_update_check_git "$project" "$repository" "$@" +} + +build() { + local target="$1" + local repository="$project" + + project_sources_directory_missing_empty_error "$project" "$repository" "$@" + + if git_project_check "$repository"; then + git_project_checkout "$project" "$repository" "$@" + fi + + local project_path="$(project_path "$project")" + local seabios_config_path="$(project_file_path "$project" "$CONFIGS" 'config' "$@")" + local sources_path="$(project_sources_path "$project" "$repository" "$@")" + local build_path="$(project_build_path "$project" "$@")" + + mkdir -p "$build_path" + cp "$seabios_config_path" "$sources_path/.config" + + make -C "$sources_path" -j"$TASKS" + + if [[ "$target" == 'bios' ]]; then + cp "$sources_path/out/bios.bin.elf" "$build_path" + elif [[ "$target" == 'vgabios' ]]; then + cp "$sources_path/out/vgabios.bin" "$build_path" + fi + + make -C "$sources_path" distclean + + rm -f "$sources_path/.config" +} + +build_check() { + project_build_check "$project" "$@" +} + +install() { + project_install "$project" "$@" +} + +install_check() { + project_install_check "$project" "$@" +} + +release() { + local repository="$project" + + project_release_install_archive "$project" "$IMAGES" "$@" + project_release_sources_git "$project" "$repository" "$@" +} + +release_check() { + local repository="$project" + + project_release_install_archive_check "$project" "$IMAGES" "$@" + project_release_check_sources_git "$project" "$repository" "$@" +} + +clean() { + project_clean "$project" "$@" +} diff --git a/projects/vboot/vboot b/projects/vboot/vboot index 2a062023..a36791d6 100755 --- a/projects/vboot/vboot +++ b/projects/vboot/vboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/projects/vpd/vpd b/projects/vpd/vpd index a9c8a8e2..f8ebe59f 100755 --- a/projects/vpd/vpd +++ b/projects/vpd/vpd @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/resources/grub/background/background1024x768.png b/resources/grub/background/background1024x768.png Binary files differindex fd6ecbd1..2689d5d8 100644 --- a/resources/grub/background/background1024x768.png +++ b/resources/grub/background/background1024x768.png diff --git a/resources/grub/background/background1280x800.png b/resources/grub/background/background1280x800.png Binary files differindex 218f6efc..0570c879 100644 --- a/resources/grub/background/background1280x800.png +++ b/resources/grub/background/background1280x800.png diff --git a/resources/scripts/helpers/build/clean/bucts b/resources/scripts/helpers/build/clean/bucts index f7f7edd5..202b3bad 100755 --- a/resources/scripts/helpers/build/clean/bucts +++ b/resources/scripts/helpers/build/clean/bucts @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in bucts # diff --git a/resources/scripts/helpers/build/clean/coreboot b/resources/scripts/helpers/build/clean/coreboot index f72e2f1f..b9580f4a 100755 --- a/resources/scripts/helpers/build/clean/coreboot +++ b/resources/scripts/helpers/build/clean/coreboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in coreboot # diff --git a/resources/scripts/helpers/build/clean/crossgcc b/resources/scripts/helpers/build/clean/crossgcc index 78a89349..5e572a04 100755 --- a/resources/scripts/helpers/build/clean/crossgcc +++ b/resources/scripts/helpers/build/clean/crossgcc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in coreboot # diff --git a/resources/scripts/helpers/build/clean/flashrom b/resources/scripts/helpers/build/clean/flashrom index 241917f0..a8f1fa34 100755 --- a/resources/scripts/helpers/build/clean/flashrom +++ b/resources/scripts/helpers/build/clean/flashrom @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in flashrom # diff --git a/resources/scripts/helpers/build/clean/grub b/resources/scripts/helpers/build/clean/grub index fb01d64b..a3d21d46 100755 --- a/resources/scripts/helpers/build/clean/grub +++ b/resources/scripts/helpers/build/clean/grub @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in GRUB # diff --git a/resources/scripts/helpers/build/clean/i945pwm b/resources/scripts/helpers/build/clean/i945pwm index 91bf6f78..b746d279 100755 --- a/resources/scripts/helpers/build/clean/i945pwm +++ b/resources/scripts/helpers/build/clean/i945pwm @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in i945pwm # diff --git a/resources/scripts/helpers/build/clean/ich9deblob b/resources/scripts/helpers/build/clean/ich9deblob index d9019fc3..6d3687ac 100755 --- a/resources/scripts/helpers/build/clean/ich9deblob +++ b/resources/scripts/helpers/build/clean/ich9deblob @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in ich9deblob # diff --git a/resources/scripts/helpers/build/clean/memtest86plus b/resources/scripts/helpers/build/clean/memtest86plus index db40be32..271a46ea 100755 --- a/resources/scripts/helpers/build/clean/memtest86plus +++ b/resources/scripts/helpers/build/clean/memtest86plus @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in memtest86+ # diff --git a/resources/scripts/helpers/build/clean/rom_images b/resources/scripts/helpers/build/clean/rom_images index abf352d0..cac69226 100755 --- a/resources/scripts/helpers/build/clean/rom_images +++ b/resources/scripts/helpers/build/clean/rom_images @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: delete the ROM images # diff --git a/resources/scripts/helpers/build/clean/seabios b/resources/scripts/helpers/build/clean/seabios index 09203ab8..168c7874 100755 --- a/resources/scripts/helpers/build/clean/seabios +++ b/resources/scripts/helpers/build/clean/seabios @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: clean the dependencies that were built in seabios # diff --git a/resources/scripts/helpers/build/config/grubmodify b/resources/scripts/helpers/build/config/grubmodify index f6075034..606cc1ad 100755 --- a/resources/scripts/helpers/build/config/grubmodify +++ b/resources/scripts/helpers/build/config/grubmodify @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make menuconfig" on config(s) to modify them diff --git a/resources/scripts/helpers/build/config/grubreplace b/resources/scripts/helpers/build/config/grubreplace index ba8d55b8..b3a57ae3 100755 --- a/resources/scripts/helpers/build/config/grubreplace +++ b/resources/scripts/helpers/build/config/grubreplace @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make menuconfig" on config(s) to replace them diff --git a/resources/scripts/helpers/build/config/grubupdate b/resources/scripts/helpers/build/config/grubupdate index e9d9719c..72269213 100755 --- a/resources/scripts/helpers/build/config/grubupdate +++ b/resources/scripts/helpers/build/config/grubupdate @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make oldconfig" on all coreboot config files diff --git a/resources/scripts/helpers/build/config/seabiosmodify b/resources/scripts/helpers/build/config/seabiosmodify index 15f9ca48..72d1cbc0 100755 --- a/resources/scripts/helpers/build/config/seabiosmodify +++ b/resources/scripts/helpers/build/config/seabiosmodify @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: update the seabios config diff --git a/resources/scripts/helpers/build/config/seabiosrommodify b/resources/scripts/helpers/build/config/seabiosrommodify index df58928e..a25ae441 100755 --- a/resources/scripts/helpers/build/config/seabiosrommodify +++ b/resources/scripts/helpers/build/config/seabiosrommodify @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make menuconfig" on config(s) to modify them diff --git a/resources/scripts/helpers/build/config/seabiosromreplace b/resources/scripts/helpers/build/config/seabiosromreplace index 75453553..f172d193 100755 --- a/resources/scripts/helpers/build/config/seabiosromreplace +++ b/resources/scripts/helpers/build/config/seabiosromreplace @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make menuconfig" on config(s) to replace them diff --git a/resources/scripts/helpers/build/config/seabiosromupdate b/resources/scripts/helpers/build/config/seabiosromupdate index 1dc4673e..8e9f29af 100755 --- a/resources/scripts/helpers/build/config/seabiosromupdate +++ b/resources/scripts/helpers/build/config/seabiosromupdate @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: run "make oldconfig" on all coreboot config files diff --git a/resources/scripts/helpers/build/config/seabiosupdate b/resources/scripts/helpers/build/config/seabiosupdate index 17b0204b..be25b55c 100755 --- a/resources/scripts/helpers/build/config/seabiosupdate +++ b/resources/scripts/helpers/build/config/seabiosupdate @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: update the seabios config diff --git a/resources/scripts/helpers/build/dependencies/parabola b/resources/scripts/helpers/build/dependencies/parabola index 44052418..86f1f341 100755 --- a/resources/scripts/helpers/build/dependencies/parabola +++ b/resources/scripts/helpers/build/dependencies/parabola @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: installs build dependencies for Parabola diff --git a/resources/scripts/helpers/build/dependencies/trisquel7 b/resources/scripts/helpers/build/dependencies/trisquel7 index 2e47371c..10142758 100755 --- a/resources/scripts/helpers/build/dependencies/trisquel7 +++ b/resources/scripts/helpers/build/dependencies/trisquel7 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # for_trisquel7 script: installs build dependencies for Trisquel 7 # diff --git a/resources/scripts/helpers/build/module/bucts b/resources/scripts/helpers/build/module/bucts index 152c3e30..108a6eca 100755 --- a/resources/scripts/helpers/build/module/bucts +++ b/resources/scripts/helpers/build/module/bucts @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds bucts source code # diff --git a/resources/scripts/helpers/build/module/coreboot b/resources/scripts/helpers/build/module/coreboot index f934f003..e87642df 100755 --- a/resources/scripts/helpers/build/module/coreboot +++ b/resources/scripts/helpers/build/module/coreboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds the dependencies that coreboot needs before building a ROM image # diff --git a/resources/scripts/helpers/build/module/crossgcc b/resources/scripts/helpers/build/module/crossgcc index a88427fe..0631758b 100755 --- a/resources/scripts/helpers/build/module/crossgcc +++ b/resources/scripts/helpers/build/module/crossgcc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds crossgcc, needed by coreboot's build system # diff --git a/resources/scripts/helpers/build/module/flashrom b/resources/scripts/helpers/build/module/flashrom index 7ed79fcd..4e887a8d 100755 --- a/resources/scripts/helpers/build/module/flashrom +++ b/resources/scripts/helpers/build/module/flashrom @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds flashrom source code # diff --git a/resources/scripts/helpers/build/module/grub b/resources/scripts/helpers/build/module/grub index f6c1657b..e036b148 100755 --- a/resources/scripts/helpers/build/module/grub +++ b/resources/scripts/helpers/build/module/grub @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds GRUB2 source code # diff --git a/resources/scripts/helpers/build/module/i945pwm b/resources/scripts/helpers/build/module/i945pwm index 730d8e69..55e6f8e0 100755 --- a/resources/scripts/helpers/build/module/i945pwm +++ b/resources/scripts/helpers/build/module/i945pwm @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds i945-pwm source code # diff --git a/resources/scripts/helpers/build/module/ich9deblob b/resources/scripts/helpers/build/module/ich9deblob index 255e22bc..963d7a0d 100755 --- a/resources/scripts/helpers/build/module/ich9deblob +++ b/resources/scripts/helpers/build/module/ich9deblob @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds ich9deblob source code # diff --git a/resources/scripts/helpers/build/module/memtest86plus b/resources/scripts/helpers/build/module/memtest86plus index db664457..08c36c50 100755 --- a/resources/scripts/helpers/build/module/memtest86plus +++ b/resources/scripts/helpers/build/module/memtest86plus @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds memtest86+ source code # diff --git a/resources/scripts/helpers/build/module/seabios b/resources/scripts/helpers/build/module/seabios index 2dd436c2..46c1594c 100755 --- a/resources/scripts/helpers/build/module/seabios +++ b/resources/scripts/helpers/build/module/seabios @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: builds SeaBIOS source code # diff --git a/resources/scripts/helpers/build/release/roms b/resources/scripts/helpers/build/release/roms index 4c165ea0..b3cd4977 100755 --- a/resources/scripts/helpers/build/release/roms +++ b/resources/scripts/helpers/build/release/roms @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: generate the ROM image release archives diff --git a/resources/scripts/helpers/build/release/sha512sums b/resources/scripts/helpers/build/release/sha512sums index 11967acb..78e9eec1 100755 --- a/resources/scripts/helpers/build/release/sha512sums +++ b/resources/scripts/helpers/build/release/sha512sums @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: create sha512sum file for the current snapshot diff --git a/resources/scripts/helpers/build/release/src b/resources/scripts/helpers/build/release/src index 69279070..89cd1e2c 100755 --- a/resources/scripts/helpers/build/release/src +++ b/resources/scripts/helpers/build/release/src @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: generate the source release archive diff --git a/resources/scripts/helpers/build/release/tobuild b/resources/scripts/helpers/build/release/tobuild index bdf6ca77..459ab6fe 100755 --- a/resources/scripts/helpers/build/release/tobuild +++ b/resources/scripts/helpers/build/release/tobuild @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper: prepare a small source archive for those utils # that don't easily cross-compile. Then the tarball can be extracted diff --git a/resources/scripts/helpers/build/release/util b/resources/scripts/helpers/build/release/util index 62c5dfaa..a3224504 100755 --- a/resources/scripts/helpers/build/release/util +++ b/resources/scripts/helpers/build/release/util @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: generate the release archives diff --git a/resources/scripts/helpers/build/roms/withgrub b/resources/scripts/helpers/build/roms/withgrub index 28f35736..4b812bfe 100755 --- a/resources/scripts/helpers/build/roms/withgrub +++ b/resources/scripts/helpers/build/roms/withgrub @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: build ROM images with SeaGRUB and put them in ./bin/ diff --git a/resources/scripts/helpers/build/roms/withgrub_helper b/resources/scripts/helpers/build/roms/withgrub_helper index 26d69f0b..49294451 100755 --- a/resources/scripts/helpers/build/roms/withgrub_helper +++ b/resources/scripts/helpers/build/roms/withgrub_helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: create ROM images for a given system, with SeaGRUB # diff --git a/resources/scripts/helpers/build/roms/withseabios b/resources/scripts/helpers/build/roms/withseabios index e43c642f..71f0c448 100755 --- a/resources/scripts/helpers/build/roms/withseabios +++ b/resources/scripts/helpers/build/roms/withseabios @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # helper script: build ROM images with SeaBIOS and put them in ./bin/seabios/ diff --git a/resources/scripts/helpers/build/roms/withseabios_helper b/resources/scripts/helpers/build/roms/withseabios_helper index 61d36d99..caceddd0 100755 --- a/resources/scripts/helpers/build/roms/withseabios_helper +++ b/resources/scripts/helpers/build/roms/withseabios_helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: create ROM images for a given system, with SeaBIOS # diff --git a/resources/scripts/helpers/download/bucts b/resources/scripts/helpers/download/bucts index e516ade8..7bea3e65 100755 --- a/resources/scripts/helpers/download/bucts +++ b/resources/scripts/helpers/download/bucts @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: downloads bucts and patches it # diff --git a/resources/scripts/helpers/download/coreboot b/resources/scripts/helpers/download/coreboot index daa3b649..8b8fa510 100755 --- a/resources/scripts/helpers/download/coreboot +++ b/resources/scripts/helpers/download/coreboot @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: downloads coreboot and patches/deblobs it # diff --git a/resources/scripts/helpers/download/crossgcc b/resources/scripts/helpers/download/crossgcc index 68cd6414..311ded2d 100755 --- a/resources/scripts/helpers/download/crossgcc +++ b/resources/scripts/helpers/download/crossgcc @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: downloads crossgcc, for building coreboot # diff --git a/resources/scripts/helpers/download/flashrom b/resources/scripts/helpers/download/flashrom index a706e9ee..8d06dde0 100755 --- a/resources/scripts/helpers/download/flashrom +++ b/resources/scripts/helpers/download/flashrom @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: downloads flashrom and patches it # diff --git a/resources/scripts/helpers/download/grub b/resources/scripts/helpers/download/grub index 1847de9a..c0a298cb 100755 --- a/resources/scripts/helpers/download/grub +++ b/resources/scripts/helpers/download/grub @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: Downloads GRUB and patches it. # diff --git a/resources/scripts/helpers/download/memtest86plus b/resources/scripts/helpers/download/memtest86plus index 920d16fd..f96af2b1 100755 --- a/resources/scripts/helpers/download/memtest86plus +++ b/resources/scripts/helpers/download/memtest86plus @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # helper script: Downloads MemTest86+ and patches it # diff --git a/resources/scripts/helpers/download/seabios b/resources/scripts/helpers/download/seabios index 18f90dd6..75299f2d 100755 --- a/resources/scripts/helpers/download/seabios +++ b/resources/scripts/helpers/download/seabios @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright (C) 2015, 2016 Leah Rowe <info@minifree.org> # diff --git a/resources/scripts/misc/grubeditor.sh b/resources/scripts/misc/grubeditor.sh index 84284645..9b26a5e0 100644 --- a/resources/scripts/misc/grubeditor.sh +++ b/resources/scripts/misc/grubeditor.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # # grubeditor.sh -- conveniently edit grub{test}.cfg files by automating their # extraction with cbfstool and the user's editor of choice. diff --git a/resources/scripts/misc/powertop.trisquel7 b/resources/scripts/misc/powertop.trisquel7 index 1e29f38a..cfce8f77 100755 --- a/resources/scripts/misc/powertop.trisquel7 +++ b/resources/scripts/misc/powertop.trisquel7 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # powertop.trisquel7: automatically sets up powertop --auto-tune on startup in trisquel 7 # diff --git a/resources/utilities/coreboot-libre/deblob b/resources/utilities/coreboot-libre/deblob index 3d0daa7a..1ca32531 100755 --- a/resources/utilities/coreboot-libre/deblob +++ b/resources/utilities/coreboot-libre/deblob @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # DEBLOB script: deblobs the version of coreboot used for this release. # diff --git a/resources/utilities/coreboot-libre/findblobs b/resources/utilities/coreboot-libre/findblobs index 2e80a7bc..7ea42a98 100755 --- a/resources/utilities/coreboot-libre/findblobs +++ b/resources/utilities/coreboot-libre/findblobs @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # find blobs in coreboot # diff --git a/resources/utilities/grub-assemble/gen.sh b/resources/utilities/grub-assemble/gen.sh index 049b44b6..dc5b81fc 100755 --- a/resources/utilities/grub-assemble/gen.sh +++ b/resources/utilities/grub-assemble/gen.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # grub-assemble gen.sh: generate GRUB ELF files (coreboot payloads) # diff --git a/resources/utilities/macbook21-three-finger-tap/install.sh b/resources/utilities/macbook21-three-finger-tap/install.sh index a49aad06..0d0a97de 100755 --- a/resources/utilities/macbook21-three-finger-tap/install.sh +++ b/resources/utilities/macbook21-three-finger-tap/install.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Three-finger tap: Enable three-finger tap for "middle click" in GNOME. # Copyright (C) 2015 Albin Söderqvist and Eemeli Blåsten diff --git a/tools/blobs-discover/blobs-discover b/tools/blobs-discover/blobs-discover index 9d5013e0..6d143d02 100755 --- a/tools/blobs-discover/blobs-discover +++ b/tools/blobs-discover/blobs-discover @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -22,7 +22,7 @@ arguments() { then ls -A "$root/$PROJECTS/" | while read project do - echo "$project" + printf '%s\n' "$project" done else shift @@ -93,18 +93,18 @@ verify() { ( IFS=$ifs_save - printf "\nDiscovered blob: $file\n" + printf '\n%s\n' "Discovered blob: $file" $EDITOR "$project_sources_path/$file" - printf "Type \"blob\" to keep or press enter to discard: " + printf '%s' "Type \"blob\" to keep or press enter to discard: " read choice if [ "$choice" = "blob" ] then - echo "$file" >> "$project_blobs_path" + printf '%s\n' "$file" >> "$project_blobs_path" else - echo "$file" >> "$project_blobs_ignore_path" + printf '%s\n' "$file" >> "$project_blobs_ignore_path" fi sed "\|^$file$|d" -i "$project_blobs_discover_path" @@ -151,13 +151,13 @@ execute() { git_clean "$repository_path" fi - printf "\nDiscovering new blobs, this may take a while...\n" + printf '\n%s\n' 'Discovering new blobs, this may take a while...' files=$( find "$project_sources_path" -type f | grep -vP "\.git/|\.tar|\.patch" ) touch "$project_blobs_discover_path" - echo "$files" | while read file + printf '%s\n' "$files" | while read file do if ! [ -z "$project_blobs_ignore_path" ] then @@ -171,11 +171,11 @@ execute() { match=$( "$deblob_check_path" -l -i "" "$file" || true ) if ! [ -z "$match" ] then - echo "$match" >> "$project_blobs_discover_path" + printf '%s\n' "$match" >> "$project_blobs_discover_path" fi done - printf "\nDiscovered blobs were stored in $project_blobs_discover_path\n" + printf '\n%s\n' "Discovered blobs were stored in $project_blobs_discover_path" } execute_check() { diff --git a/tools/boot-keys/boot-keys b/tools/boot-keys/boot-keys index c446bd44..da56aca9 100755 --- a/tools/boot-keys/boot-keys +++ b/tools/boot-keys/boot-keys @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # @@ -24,7 +24,7 @@ generate() { if [ -z "$type" ] then - printf "Unable to determine keys type\n" >&2 + printf '%s\n' 'Unable to determine keys type' >&2 return 1 fi @@ -47,11 +47,11 @@ sign() { if [ -z "$type" ] then - printf "Unable to determine keys type\n" >&2 + printf '%s\n' 'Unable to determine keys type' >&2 return 1 fi - echo "$prepare_files" | while read install_path + printf '%s\n' "$prepare_files" | while read install_path do case $type in "cros-firmware") @@ -90,11 +90,11 @@ verify() { if [ -z "$type" ] then - printf "Unable to determine keys type\n" >&2 + printf '%s\n' 'Unable to determine keys type' >&2 return 1 fi - echo "$prepare_files" | while read install_path + printf '%s\n' "$prepare_files" | while read install_path do case $type in "cros-firmware") diff --git a/tools/boot-keys/boot-keys-helper b/tools/boot-keys/boot-keys-helper index 5046cbfb..31e2c16b 100755 --- a/tools/boot-keys/boot-keys-helper +++ b/tools/boot-keys/boot-keys-helper @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash KERNEL="kernel" TYPE="type" @@ -15,7 +15,7 @@ boot_keys_cros() { if ! [ -x "$cros_script_path" ] then - printf "$cros_script script missing from cros-scripts install" >&2 + printf '%s' "$cros_script script missing from cros-scripts install" >&2 return 1 fi @@ -45,7 +45,7 @@ boot_keys_files_install_path() { ifs_save=$IFS IFS=$'\n' - for argument in $( echo "$helper_arguments" ) + for argument in $( printf '%s\n' "$helper_arguments" ) do ( IFS=$ifs_save diff --git a/tools/dependencies/configs/parabola/i386/README b/tools/dependencies/configs/parabola/i386/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/parabola/i386/deps-bucts b/tools/dependencies/configs/parabola/i386/deps-bucts new file mode 100644 index 00000000..6bce532b --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-bucts @@ -0,0 +1,4 @@ +gcc +make +pciutils +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-coreboot b/tools/dependencies/configs/parabola/i386/deps-coreboot new file mode 100644 index 00000000..cbfb7ddc --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-coreboot @@ -0,0 +1,11 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +make +ncurses +openssl +pkg-config diff --git a/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm b/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm new file mode 100644 index 00000000..6e476970 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-crossgcc-arm @@ -0,0 +1 @@ +arm-none-eabi-gcc diff --git a/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts b/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts new file mode 100644 index 00000000..1bba66d1 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-dejavu-fonts @@ -0,0 +1,3 @@ +fontforge +perl-font-ttf +perl-io-string diff --git a/tools/dependencies/configs/parabola/i386/deps-documentation b/tools/dependencies/configs/parabola/i386/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/parabola/i386/deps-download b/tools/dependencies/configs/parabola/i386/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/parabola/i386/deps-flashrom b/tools/dependencies/configs/parabola/i386/deps-flashrom new file mode 100644 index 00000000..c325a6f1 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-flashrom @@ -0,0 +1,7 @@ +libftdi +libftdi-compat +libusb +make +pciutils +pkg-config +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-generic b/tools/dependencies/configs/parabola/i386/deps-generic new file mode 100644 index 00000000..162dc51d --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-generic @@ -0,0 +1,10 @@ +autogen +binutils +coreutils +fakeroot +gawk +help2man +libfaketime +m4 +texinfo +xz diff --git a/tools/dependencies/configs/parabola/i386/deps-grub b/tools/dependencies/configs/parabola/i386/deps-grub new file mode 100644 index 00000000..59119a22 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bdf-unifont +bison +device-mapper +flex +freetype2 +gcc +gettext +glibc +libpciaccess +libusb +make +pciutils +python +qemu +sdl diff --git a/tools/dependencies/configs/parabola/i386/deps-i945-pwm b/tools/dependencies/configs/parabola/i386/deps-i945-pwm new file mode 100644 index 00000000..079b0d7d --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-i945-pwm @@ -0,0 +1,5 @@ +gcc +gdb +pciutils +make +zlib diff --git a/tools/dependencies/configs/parabola/i386/deps-memtest86plus b/tools/dependencies/configs/parabola/i386/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/parabola/i386/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/parabola/i686 b/tools/dependencies/configs/parabola/i686 new file mode 120000 index 00000000..fd32fa4e --- /dev/null +++ b/tools/dependencies/configs/parabola/i686 @@ -0,0 +1 @@ +i386
\ No newline at end of file diff --git a/tools/dependencies/configs/parabola/x86_64/README b/tools/dependencies/configs/parabola/x86_64/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/parabola/x86_64/deps-bucts b/tools/dependencies/configs/parabola/x86_64/deps-bucts new file mode 100644 index 00000000..6bce532b --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-bucts @@ -0,0 +1,4 @@ +gcc +make +pciutils +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-coreboot b/tools/dependencies/configs/parabola/x86_64/deps-coreboot new file mode 100644 index 00000000..cbfb7ddc --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-coreboot @@ -0,0 +1,11 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +make +ncurses +openssl +pkg-config diff --git a/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm new file mode 100644 index 00000000..6e476970 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-arm @@ -0,0 +1 @@ +arm-none-eabi-gcc diff --git a/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 new file mode 100644 index 00000000..82ca6997 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-crossgcc-i386 @@ -0,0 +1,9 @@ +gcc-libs-multilib +gcc-multilib +lib32-fakeroot +lib32-glibc +lib32-libltdl +lib32-libpciaccess +lib32-libstdc++5 +lib32-openssl +lib32-ncurses diff --git a/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts b/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts new file mode 100644 index 00000000..1bba66d1 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-dejavu-fonts @@ -0,0 +1,3 @@ +fontforge +perl-font-ttf +perl-io-string diff --git a/tools/dependencies/configs/parabola/x86_64/deps-documentation b/tools/dependencies/configs/parabola/x86_64/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/parabola/x86_64/deps-download b/tools/dependencies/configs/parabola/x86_64/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/parabola/x86_64/deps-flashrom b/tools/dependencies/configs/parabola/x86_64/deps-flashrom new file mode 100644 index 00000000..c325a6f1 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-flashrom @@ -0,0 +1,7 @@ +libftdi +libftdi-compat +libusb +make +pciutils +pkg-config +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-generic b/tools/dependencies/configs/parabola/x86_64/deps-generic new file mode 100644 index 00000000..162dc51d --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-generic @@ -0,0 +1,10 @@ +autogen +binutils +coreutils +fakeroot +gawk +help2man +libfaketime +m4 +texinfo +xz diff --git a/tools/dependencies/configs/parabola/x86_64/deps-grub b/tools/dependencies/configs/parabola/x86_64/deps-grub new file mode 100644 index 00000000..59119a22 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bdf-unifont +bison +device-mapper +flex +freetype2 +gcc +gettext +glibc +libpciaccess +libusb +make +pciutils +python +qemu +sdl diff --git a/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm b/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm new file mode 100644 index 00000000..079b0d7d --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-i945-pwm @@ -0,0 +1,5 @@ +gcc +gdb +pciutils +make +zlib diff --git a/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus b/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/parabola/x86_64/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/targets b/tools/dependencies/configs/targets new file mode 100644 index 00000000..33794c27 --- /dev/null +++ b/tools/dependencies/configs/targets @@ -0,0 +1,2 @@ +parabola +trisquel7 diff --git a/tools/dependencies/configs/trisquel7/i386/README b/tools/dependencies/configs/trisquel7/i386/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/trisquel7/i386/deps-bucts b/tools/dependencies/configs/trisquel7/i386/deps-bucts new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-bucts @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-coreboot b/tools/dependencies/configs/trisquel7/i386/deps-coreboot new file mode 100644 index 00000000..bd78c637 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-coreboot @@ -0,0 +1,13 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +libncurses5 +libncurses5-dev +libssl-dev +make +ncurses-base +pkg-config diff --git a/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm b/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm new file mode 100644 index 00000000..f4629ab5 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-crossgcc-arm @@ -0,0 +1 @@ +gcc-arm-linux-gnueabi diff --git a/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts b/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts new file mode 100644 index 00000000..30157ccf --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-dejavu-fonts @@ -0,0 +1,2 @@ +fontforge +libfont-ttf-perl diff --git a/tools/dependencies/configs/trisquel7/i386/deps-documentation b/tools/dependencies/configs/trisquel7/i386/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/trisquel7/i386/deps-download b/tools/dependencies/configs/trisquel7/i386/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/trisquel7/i386/deps-flashrom b/tools/dependencies/configs/trisquel7/i386/deps-flashrom new file mode 100644 index 00000000..e469c651 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-flashrom @@ -0,0 +1,10 @@ +libftdi1 +libftdi-dev +libpci3 +libpci-dev +libusb-1.0-0 +libusb-1.0-0-dev +pciutils +pkg-config +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-generic b/tools/dependencies/configs/trisquel7/i386/deps-generic new file mode 100644 index 00000000..b04512a4 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-generic @@ -0,0 +1,17 @@ +autogen +binutils +build-essential +coreutils +fakeroot +gawk +help2man +libfakeroot +libfaketime +libltdl-dev +liblzma-dev +libopts25 +libopts25-dev +libtool +m4 +texinfo +xz-utils diff --git a/tools/dependencies/configs/trisquel7/i386/deps-grub b/tools/dependencies/configs/trisquel7/i386/deps-grub new file mode 100644 index 00000000..c54e7627 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bison +flex +gcc +gettext +libdevmapper-dev +libfreetype6 +libfreetype6-dev +libpciaccess0 +libpciaccess-dev +libusb-1.0-0 +libusb-1.0-0-dev +python +qemu-system-x86 +ttf-unifont +xorriso diff --git a/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm b/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-i945-pwm @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus b/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i386/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/configs/trisquel7/i686 b/tools/dependencies/configs/trisquel7/i686 new file mode 120000 index 00000000..fd32fa4e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/i686 @@ -0,0 +1 @@ +i386
\ No newline at end of file diff --git a/tools/dependencies/configs/trisquel7/x86_64/README b/tools/dependencies/configs/trisquel7/x86_64/README new file mode 100644 index 00000000..3a920465 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/README @@ -0,0 +1,24 @@ +Each file in this directory contains a list of dependencies that +should be installed before compiling the program indicated by the +filename's suffix, with a few exceptions; these exceptions being +"deps-documentation", "deps-download", and "deps-generic" for reasons +noted below: + +* "deps-documentation" contains a general list of packages that are + needed to build Libreboot documentation. +* "deps-download" contains packages necessary for downloading either + source code repositories and/or supporting files from a remote + source. +* "deps-generic" contains generic dependencies that didn't quite fit + (i.e. listed) under any of the other dependency lists but are + necessary nonetheless. + +It is expected that these files are updated whenever upstream projects +change dependency requirements. + +Any duplications between files are intentional; in order to provide a +clear picture as to which dependencies are needed by individual +programs, any attempt to consolidate these lists is dissuaded. + +This README is released under Creative Commons Zero 1.0: +https://creativecommons.org/publicdomain/zero/1.0/ diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-bucts b/tools/dependencies/configs/trisquel7/x86_64/deps-bucts new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-bucts @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot b/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot new file mode 100644 index 00000000..bd78c637 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-coreboot @@ -0,0 +1,13 @@ +bison +doxygen +flex +gcc +gdb +g++ +iasl +libncurses5 +libncurses5-dev +libssl-dev +make +ncurses-base +pkg-config diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm new file mode 100644 index 00000000..f4629ab5 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-arm @@ -0,0 +1 @@ +gcc-arm-linux-gnueabi diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 new file mode 100644 index 00000000..2fa4385b --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-crossgcc-i386 @@ -0,0 +1,10 @@ +gcc-multilib +lib32ncurses5 +lib32ncurses5-dev +lib32stdc++6 +lib32tinfo-dev +lib32tinfo5 +lib32z1 +lib32z1-dev +libc6-dev-i386 +libc6-i386 diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts b/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts new file mode 100644 index 00000000..30157ccf --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-dejavu-fonts @@ -0,0 +1,2 @@ +fontforge +libfont-ttf-perl diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-documentation b/tools/dependencies/configs/trisquel7/x86_64/deps-documentation new file mode 100644 index 00000000..4a59b54c --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-documentation @@ -0,0 +1 @@ +pandoc diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-download b/tools/dependencies/configs/trisquel7/x86_64/deps-download new file mode 100644 index 00000000..880fb73e --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-download @@ -0,0 +1,2 @@ +git +wget diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom b/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom new file mode 100644 index 00000000..e469c651 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-flashrom @@ -0,0 +1,10 @@ +libftdi1 +libftdi-dev +libpci3 +libpci-dev +libusb-1.0-0 +libusb-1.0-0-dev +pciutils +pkg-config +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-generic b/tools/dependencies/configs/trisquel7/x86_64/deps-generic new file mode 100644 index 00000000..b04512a4 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-generic @@ -0,0 +1,17 @@ +autogen +binutils +build-essential +coreutils +fakeroot +gawk +help2man +libfakeroot +libfaketime +libltdl-dev +liblzma-dev +libopts25 +libopts25-dev +libtool +m4 +texinfo +xz-utils diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-grub b/tools/dependencies/configs/trisquel7/x86_64/deps-grub new file mode 100644 index 00000000..c54e7627 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-grub @@ -0,0 +1,17 @@ +autoconf +automake +bison +flex +gcc +gettext +libdevmapper-dev +libfreetype6 +libfreetype6-dev +libpciaccess0 +libpciaccess-dev +libusb-1.0-0 +libusb-1.0-0-dev +python +qemu-system-x86 +ttf-unifont +xorriso diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm b/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm new file mode 100644 index 00000000..538d83f7 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-i945-pwm @@ -0,0 +1,6 @@ +gcc +libpci3 +libpci-dev +make +zlib1g +zlib1g-dev diff --git a/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus b/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus new file mode 100644 index 00000000..89ffe213 --- /dev/null +++ b/tools/dependencies/configs/trisquel7/x86_64/deps-memtest86plus @@ -0,0 +1,2 @@ +gcc +make diff --git a/tools/dependencies/dependencies b/tools/dependencies/dependencies new file mode 100755 index 00000000..cc9b2b38 --- /dev/null +++ b/tools/dependencies/dependencies @@ -0,0 +1,57 @@ +#!/usr/bin/env bash + +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +arguments() { + tool_arguments_targets "$tool" "$@" +} + +usage() { + tool_usage_actions "$tool" 'print' + tool_usage_arguments "$tool" "$@" +} + +print() { + local distro="$1" + + local arch="$(uname -i || uname -m)" + local tool_path="$(tool_path "$tool")" + + if [[ -z "$arch" ]]; then + printf '\n%s\n' 'uname(1) produced no output. Exiting' 1>&2 + + return 1 + fi + + dependencies_host_supported "$distro" "$arch" || return + + local -a dependencies + + for dependency_file in "$tool_path/$CONFIGS/$distro/$arch"/*; do + if [[ "${dependency_file##*/}" != 'README' ]]; then + local -i origin="${#dependencies[@]}" + + mapfile -tO "$origin" dependencies < "$dependency_file" + else + continue + fi + done + + local -a sorted + mapfile -t sorted < <(printf '%s\n' "${dependencies[@]}" | sort | uniq) + + dependencies_print "$distro" "${sorted[@]}" +} diff --git a/tools/dependencies/dependencies-helper b/tools/dependencies/dependencies-helper new file mode 100755 index 00000000..9e02ad3c --- /dev/null +++ b/tools/dependencies/dependencies-helper @@ -0,0 +1,73 @@ +#!/usr/bin/env bash + +# Copyright (C) 2017 Andrew Robbins <contact@andrewrobbins.info> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +dependencies_print() { + local distro="$1" + shift + + if [[ "$distro" == 'parabola' ]]; then + printf '\n%s\n' 'Enable the multilib repository in /etc/pacman.conf' + printf '\n%s\n' 'Then, run the following command as root:' + printf '\n%s%s\n' 'pacman -S --needed ' "$*" + else + printf '\n%s\n' 'You will need to run the following command as root:' + printf '\n%s%s\n' 'apt-get -y install ' "$*" + fi +} + +dependencies_host_supported() { + local distro="$1" + local arch="$2" + + dependencies_distro_supported "$distro" || return + dependencies_arch_supported "$distro" "$arch" || return +} + +dependencies_arch_supported() { + local distro="$1" + local arch="$2" + + local tool_path="$(tool_path "$tool")" + local distro_dir="$tool_path/$CONFIGS/$distro" + + if ! [[ -d "$distro_dir/$arch" ]]; then + printf '\n%s\n' "Architecture \"$arch\" is not supported" 1>&2 + + return 1 + fi +} + +dependencies_distro_supported() { + local distro="$1" + + local tool_path="$(tool_path "$tool")" + local targets_path="$tool_path/$CONFIGS/$TARGETS" + + local -a targets_list + mapfile -t targets_list < "$targets_path" + + # Necessary to properly format the string for extglob use below + IFS='|' eval 'local distro_list="${targets_list[*]}"' + + if [[ "$distro" != @($distro_list) ]]; then + printf '\n%s' "Argument \"$distro\" is not supported. " 1>&2 + printf '%s\n' 'Check spelling?' 1>&2 + + usage + return 1 + fi +} diff --git a/tools/release-external/release-external b/tools/release-external/release-external index 822b40e5..c674970a 100755 --- a/tools/release-external/release-external +++ b/tools/release-external/release-external @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Copyright (C) 2016 Paul Kocialkowski <contact@paulk.fr> # diff --git a/tools/release-external/release-external-helper b/tools/release-external/release-external-helper index 53a3f467..f10ac41a 100755 --- a/tools/release-external/release-external-helper +++ b/tools/release-external/release-external-helper @@ -1,5 +1,5 @@ -#!/bin/bash +#!/usr/bin/env bash release_external_files() { - find "$root/$RELEASE" -type f | grep -vP "\.$ASC|\.$SHA256SUM" + find "$root/$RELEASE" -type f | grep -vP "\.$DSIG|\.$CHECKSUM" } diff --git a/www/Makefile b/www/Makefile new file mode 100644 index 00000000..10eb66fc --- /dev/null +++ b/www/Makefile @@ -0,0 +1,45 @@ +# Copyright (C) 2017 Michael Reed <michael@michaelreed.io> +# +# 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 3 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, see <http://www.gnu.org/licenses/>. + +MD_MAIN != find -L . -name '*.md' -and ! -path '*/news/*' +HTML_MAIN = $(MD_MAIN:.md=.html) + +MD_NEWS != cat news/MANIFEST +HTML_NEWS = $(MD_NEWS:.md=.html) +HTML_BARE_NEWS = $(MD_NEWS:.md=.bare.html) + + +# news/index.html implies the building of $(HTML_BARE_NEWS). +all: $(HTML_MAIN) $(HTML_NEWS) news/index.html + +.SUFFIXES: .md .html .bare.html +.md.html: + ./publish.sh $< + +.md.bare.html: + pandoc $(<) > $(<:.md=.bare.html) + +# Unlike all the other markdown files, news/index.md does not exist at first: +# it must be generated by index.sh. Also note that index.sh generates the RSS +# feed, which requires the bare HTML versions of all news items. +news/index.md: $(HTML_BARE_NEWS) + ./index.sh + +clean: + rm -f $(HTML_MAIN) $(HTML_NEWS) $(HTML_BARE_NEWS) \ + news/index.md news/index.html news/index.bare.html \ + feed.xml news/feed.xml + +.PHONY: clean diff --git a/www/amd-libre.md b/www/amd-libre.md index 317e969b..9f88c5ff 100644 --- a/www/amd-libre.md +++ b/www/amd-libre.md @@ -1,3 +1,5 @@ +[Update](https://yro.slashdot.org/story/17/07/19/1459244/amd-has-no-plans-to-release-psp-code): unfortunatly AMD has no plans to release the source code and instead trusts third-party "hackers" to audit the "feature", too much pressure from govererment agencies? who knows? + --- title: We call on AMD to release source code and specs for Ryzen platform ... diff --git a/www/conduct.md b/www/conduct.md index aa8bea1e..313321c0 100644 --- a/www/conduct.md +++ b/www/conduct.md @@ -82,14 +82,13 @@ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting one of the moderators privately via IRC private message (see list below): -* Alyssa Rosenzweig: **alyssa** on Freenode -* Andrew Robbins: **and\_who** on Freenode +* Andrew Robbins: **and\_who** on Freenode, email <mailto:andrew@libreboot.org> * Jason Self: **jxself** on Freenode -* Leah Rowe: **\_4of7** on Freenode +* Leah Rowe: **\_4of7** on Freenode, email <mailto:leah@libreboot.org> * Paul Kocialkowski: **paulk-X** Freenode (X is variable, for this - person. + person, email <mailto:paul@libreboot.org> check in the channel) -* Swift Geek: **swiftgeek** on Freenode +* Swift Geek: **swiftgeek** on Freenode, email <mailto:swiftgeek@libreboot.org> If the complaint is for abuses on the Libreboot subreddit at [r/libreboot](https://www.reddit.com/r/libreboot/) then there are a separate diff --git a/www/download.md b/www/download.md index 8e329a35..c269d985 100644 --- a/www/download.md +++ b/www/download.md @@ -29,15 +29,13 @@ Do you have a mirror? --------------------- Let us know! We will add it here. Instructions for how to mirror -libreboot releases can be found [here](rsync.md). +libreboot releases can be found [on the mirrors](#https). HTTPS mirrors {#https} ------------- These mirrors are recommended, since they use TLS (https://) encryption. -<https://libreboot.org/release/> (Libreboot project official mirror) - <https://www.mirrorservice.org/sites/libreboot.org/release/> (University of Kent, UK) @@ -51,6 +49,27 @@ Project, USA) <https://elgrande74.net/libreboot/> (elgrande74.net, France) +<https://nephelai.zanity.net/mirror/libreboot/> (zanity.net, New Zealand) + +RSYNC mirrors {#rsync} +------------- + +Useful for mirroring Libreboot's entire set of release archives. + +<rsync://rsync.libreboot.org/mirrormirror/> (Libreboot project official mirror) + +<rsync://rsync.mirrorservice.org/libreboot.org/release/> (University of Kent, +UK) + +<rsync://mirror.math.princeton.edu/pub/libreboot/> (Princeton university, USA) + +<rsync://ftp.linux.ro/libreboot/> (linux.ro, Romania) + +<rsync://libreboot.mirror.si/libreboot/> + +Are you running a mirror? Contact the libreboot project, and the link will be +added to this page! + HTTP mirrors {#http} ------------ @@ -89,4 +108,4 @@ Libreboot includes statically linked executables. If you need the sources for those statically linked dependencies inside the executables, then you can contact the libreboot project using the details on the home page; source code will be provided. You can download this source code -from [here](ccsource/). +from [the "ccsource" directory](ccsource/) on libreboot.org. @@ -9,15 +9,28 @@ Important issues What version of libreboot do I have? ---------------------------------------------------------------- -[See here](../docs/#version) +See "Version" [in the documentation](../docs/#version) Flashrom complains about DEVMEM access -------------------------------------- -If running flashrom -p internal for software based flashing, and +If running `flashrom -p internal` for software based flashing, and you get an error related to /dev/mem access, you should reboot with -iomem=relaxed kernel parameter before running flashrom, or use a kernel -that has CONFIG\_STRICT\_DEVMEM not enabled. +`iomem=relaxed` kernel parameter before running flashrom, or use a kernel +that has `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` not enabled. + +Example flashrom output with both `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` enabled: +``` +flashrom v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64) +flashrom is free software, get the source code at https://flashrom.org + +Calibrating delay loop... OK. +Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000 +/dev/mem mmap failed: Operation not permitted +Failed getting access to coreboot high tables. +Error accessing DMI Table, 0x1000 bytes at 0x000000007fb27000 +/dev/mem mmap failed: Operation not permitted +``` The backlight is darker on the left side of the screen when lowering the brightness on my X200/T400/T500/R400 --------------------------------------------------------------------------------------------------------------- @@ -37,11 +50,11 @@ both on the original BIOS and in libreboot. It's a quirk in the hardware. On debian systems, a workaround is to restart the networking service when you connect the ethernet cable: - sudo service network-manager restart + $ sudo service network-manager restart On Parabola, you can try: - sudo systemctl restart network-manager + $ sudo systemctl restart network-manager (the service name might be different for you, depending on your configuration) @@ -65,7 +78,7 @@ Libreboot-unstable (or git) now disables loading PCI option ROMs, but previous releases with SeaGRUB (20160818-20160907) do not. You can work around this by running the following command: - ./cbfstool yourrom.rom add-int -i 0 -n etc/pci-optionrom-exec + $ ./cbfstool yourrom.rom add-int -i 0 -n etc/pci-optionrom-exec You can find *cbfstool* in the \_util archive with the libreboot release that you are using. @@ -76,7 +89,31 @@ Hardware compatibility What systems are compatible with libreboot? ----------------------------------------------------------------------------------- -[See here](docs/hardware/). +See the [hardware compatibility list](docs/hardware/). + +Will the Purism laptops be supported? +---------------------------------------------------------------------- + +Short answer: no. + +There are severe privacy, security and freedom issues with these laptops, due +to the Intel chipsets that they use. See: + +- [Intel Management Engine](#intelme) +- [More freedom issues on modern Intel hardware](#intel) + +Most notably, these laptops also use the Intel FSP binary blob, for the entire +hardware initialization. Coreboot does support a particular revision of one of +their laptops, but most are either unsupported or rely on binary blobs for most +of the hardware initialization. + +In particular, the Intel Management Engine is a severe threat to privacy and +security, not to mention freedom, since it is a remote backdoor that provides +Intel remote access to a computer where it is present. + +Intel themselves even admitted it, publicly. + +The Libreboot project recommends avoiding all hardware sold by Purism. Why is the latest Intel hardware unsupported in libreboot? {#intel} ----------------------------------------------------------- @@ -444,7 +481,8 @@ What *can* I use, then? {#whatcaniuse} ------------------------- Libreboot has support for fam15h AMD hardware (~2012 gen) and some -older Intel platforms (~2006-2009 gen). We also have support for some +older Intel platforms like Napa, Montevina, Eagle Lake, Lakeport (2004-2006). +We also have support for some ARM chipsets (rk3288). On the Intel side, we're also interested in some of the chipsets that use Atom CPUs (rebranded from older chipsets, mostly using ich7-based southbridges). @@ -582,7 +620,7 @@ cases. Libreboot locks the CMOS table, to ensure consistent functionality for all users. You can use: - nvramtool -C yourrom.rom -w somesetting=somevalue + $ nvramtool -C yourrom.rom -w somesetting=somevalue This will change the default inside that ROM image, and then you can re-flash it. diff --git a/www/generate.sh b/www/generate.sh deleted file mode 100755 index 4d9e6c8a..00000000 --- a/www/generate.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -[ "x${DEBUG+set}" = 'xset' ] && set -v -set -e - -find -L . -name '*.html' -and -not -name 'template.html' -delete -find -L . -name '*.md' -exec ./publish.sh {} \; -./index.sh -./publish.sh news/index.md @@ -3,13 +3,12 @@ title: Information about sending patches for review x-toc-enable: true ... -Download Libreboot from the Git repository here: +Download Libreboot from the Git repository like so: -**git clone https://notabug.org/libreboot/libreboot.git** + $ git clone https://notabug.org/libreboot/libreboot.git You can submit your patches via -[Notabug pull requests](#how-to-submit-your-patches-via-pull-requests) or -[via mailing list](#how-to-submit-your-patches-via-mailing-list). +[Notabug pull requests](#how-to-submit-your-patches-via-pull-requests). Information about how the Libreboot project is governed is documented in our [general management guidelines](management.md). @@ -17,14 +16,14 @@ Information about how the Libreboot project is governed is documented in our Editing the website and documentation, wiki-style ------------------------------------------------- -The website and documentation is inside the **www** directory in the +The website and documentation is inside the `www` directory in the [Git repository](#how-to-download-libreboot-from-the-git-repository), in Pandoc flavoured Markdown. The website is generated into static HTML via Pandoc with the following scripts in that directory: - index.sh: generates the news feed (on the News section of the website) - publish.sh: converts an .md file to an .html file -- generate.sh: with calls to index.sh and publish.sh, compiles the entire +- Makefile: with calls to index.sh and publish.sh, compiles the entire Libreboot website Use any standard text editor (e.g. Vim, Emacs, Nano, Gedit) to edit the files, @@ -68,9 +67,9 @@ How to download Libreboot from the Git repository In your terminal: -**git clone https://notabug.org/libreboot/libreboot.git** + $ git clone https://notabug.org/libreboot/libreboot.git -A new directory named ***libreboot*** will have been created, containing +A new directory named `libreboot` will have been created, containing libreboot. How to submit your patches (via pull requests) @@ -92,26 +91,3 @@ have your own Git repository with the patches. Once you have issued a Pull Request, the Libreboot maintainers will be notified via email. If you do not receive a fast enough response from the project, then you could also notify the project via the #libreboot channel on Freenode. - -How to submit your patches (via mailing list) ---------------------------------------------- - -We also have a mailing list at -[development@libreboot.org](mailto:development@libreboot.org) - -Information about this mailing list, including how to subscribe, can be found -at <https://libreboot.org/lists/>. - -Archives of previous discussion on this mailing list can be found at -<https://libreboot.org/pipermail/development/>. - -The mailing list software in use is -[GNU Mailman](https://www.gnu.org/software/mailman/), so the way to use it is -the same as on other libre software projects. - -If you prefer, you can submit patches the old-fashioned (as some may say, -proper) way by sending them to our mailing list. Code review by our -[maintainers](management.md) is done on both Notabug and on the mailing list. - -Once approved, your patch will be merged in the master branch of the main Git -repository. diff --git a/www/global.css b/www/global.css index b325ef31..80309059 100644 --- a/www/global.css +++ b/www/global.css @@ -17,6 +17,10 @@ body { color: #222; } +pre { + margin-left: 2.5em +} + #logo { width: 20%; float: right; diff --git a/www/index.md b/www/index.md index a091e45d..8fd886e1 100644 --- a/www/index.md +++ b/www/index.md @@ -10,7 +10,6 @@ mascot"){#logo}](faq.md#who-did-the-logo) [Install](docs/install/) -- [Docs](docs/) -- [News](news/) -- -[Lists](lists/) -- [Chat](https://webchat.freenode.net/?channels=libreboot) -- [Bugs](https://notabug.org/libreboot/libreboot/issues) -- [Send patches](git.md) -- @@ -23,8 +22,8 @@ operating system. It is also available preinstalled from We provide user support via [\#libreboot IRC](https://webchat.freenode.net/?channels=libreboot) on Freenode. Development -discussion also occurs on IRC, and on our [mailing list](lists/). Instructions -for sending patches are [here](git.md). +discussion also occurs on IRC. Instructions for sending patches are +on the [git](git.md) page. Why use Libreboot? ------------------ diff --git a/www/index.sh b/www/index.sh index c70c5a7a..587c5d8e 100755 --- a/www/index.sh +++ b/www/index.sh @@ -1,6 +1,7 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright (C) 2017 Alyssa Rosenzweig <alyssa@rosenzweig.io> +# Copyright (C) 2017 Michael Reed <michael@michaelreed.io> # # 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 @@ -19,60 +20,74 @@ BLOGTITLE="Libreboot News" BLOGBASE="https://libreboot.org/" BLOGDESCRIPTION="News on Libreboot development" +# MANIFEST determines the order of news articles in news/index.md +FILES=$(< news/MANIFEST) + + +# usage: title file title() { - sed -n 1p $f | sed -e s-^..-- + sed -n 1p "$1" | sed -e s-^..-- } +# usage: meta file meta() { - URL=$(echo ${f%.md}.html | sed -e s-news/--) + file=$1 + URL=$(printf '%s\n' "${file%.md}.html" | sed -e s-news/--) - echo "[$(title)]($URL){.title}" - echo "[$(sed -n 3p $f | sed -e s-^..--)]{.date}" - echo "" - tail -n +5 $f | perl -p0e 's/(\.|\?|\!)( |\n)(.|\n)*/.../g' + printf '%s\n' "[$(title "$file")]($URL){.title}" + printf '%s\n' "[$(sed -n 3p "$file" | sed -e s-^..--)]{.date}" + printf '\n' + tail -n +5 "$file" | perl -p0e 's/(\.|\?|\!)( |\n)(.|\n)*/.../g' - echo "" - echo "" + printf '\n' + printf '\n' } -# generate the index file +# usage: rss_header +rss_header() { + printf '%s\n' '<rss version="2.0">' + printf '%s\n' '<channel>' -FILES=$(ls -1 -t news/*.md | sed -e s-.*index.md-- -e s-.*presentation.md--) - -cat news-list.md > news/index.md + printf '%s\n' "<title>$BLOGTITLE</title>" + printf '%s\n' "<link>${BLOGBASE}news/</link>" + printf '%s\n' "<description>$BLOGDESCRIPTION</description>" +} -for f in $FILES -do - touch -d "$(sed -n 3p $f | sed -e 's/^..//g')" $f - meta >> news/index.md -done +# usage: rss_main file +rss_main() { + file=$1 -# generate an RSS index + # render content and escape + desc=$(sed -e 's/</\</g' "${file%.md}.bare.html" | sed -e 's/>/\>/g') + url="${file%.md}.html" -rss() { - echo '<rss version="2.0">' - echo '<channel>' + printf '%s\n' '<item>' + printf '%s\n' "<title>$(title "$file")</title>" + printf '%s\n' "<link>$BLOGBASE$url</link>" + printf '%s\n' "<description>$desc</description>" + printf '%s\n' '</item>' +} - echo "<title>$BLOGTITLE</title>" - echo "<link>"$BLOGBASE"news/</link>" - echo "<description>$BLOGDESCRIPTION</description>" +# usage: rss_footer +rss_footer() { + printf '%s\n' '</channel>' + printf '%s\n' '</rss>' +} - for f in $FILES - do - # render content and escape - desc=$(sed ${f%.md}.bare.html -e 's/</\</g' | sed -e 's/>/\>/g') - url="${f%.md}.html" - echo '<item>' - echo "<title>$(title)</title>" - echo "<link>$BLOGBASE$url</link>" - echo "<description>$desc</description>" - echo '</item>' - done +# generate the index file +cat news-list.md > news/index.md +for f in $FILES +do + meta "$f" >> news/index.md +done - echo '</channel>' - echo '</rss>' -} +# generate the RSS index +rss_header > news/feed.xml +for f in $FILES +do + rss_main "$f" >> news/feed.xml +done +rss_footer >> news/feed.xml -rss > news/feed.xml cp news/feed.xml feed.xml diff --git a/www/logo/libreboot.png b/www/logo/libreboot.png Binary files differindex 1146a9a5..415af776 100644 --- a/www/logo/libreboot.png +++ b/www/logo/libreboot.png diff --git a/www/management.md b/www/management.md index 1e68b760..b05a1826 100644 --- a/www/management.md +++ b/www/management.md @@ -27,14 +27,14 @@ List of members in the core management team In alphabetical order: -- Alyssa Rosenzweig is sysadmin and Public Relations manager. - IRC nick **alyssa**. -- Andrew Robbins is a core developer. IRC nick **and\_who** +- Andrew Robbins is a core developer. IRC nick **and\_who**, email + <mailto:andrew@libreboot.org> - Paul Kocialkowski is a core developer. IRC nick **paulk-X** - (**X** is variable, and changes over time) + (**X** is variable, and changes over time), email <mailto:paul@libreboot.org> - Leah Rowe is a core developer (and project founder). IRC nick - **\_4of7** -- Swift Geek is a core developer. IRC nick **swiftgeek** + **\_4of7**, email <mailto:leah@libreboot.org> +- Swift Geek is a core developer. IRC nick **swiftgeek**, email + <mailto:swiftgeek@libreboot.org> Generally, the people on this list have these responsibilities: @@ -44,13 +44,9 @@ Generally, the people on this list have these responsibilities: - Moderation of the IRC channel, mailing lists and other discussion mediums. - Comply with the [Guidelines for Good Conduct](conduct.md) -System administration ---------------------- - -The following people have SSH access to libreboot.org: - -- Alyssa and Leah have root access, for managing services and infrastructure -- Other people can join as system administrators, in the future +All members are granted SSH access, with varying levels of access depending on +need. At the very least, all members are able to update the website when new +changes to it are merged in the Git repository. People of interest ------------------ diff --git a/www/news/MANIFEST b/www/news/MANIFEST new file mode 100644 index 00000000..b092d469 --- /dev/null +++ b/www/news/MANIFEST @@ -0,0 +1,8 @@ +news/lenovo-recall.md +news/alyssa-resignation.md +news/talos.md +news/new-mailing-lists.md +news/andrew-robbins-new-maintainer.md +news/formalised-structure.md +news/proposal-rejoin-gnu.md +news/unity.md diff --git a/www/news/alyssa-resignation.md b/www/news/alyssa-resignation.md new file mode 100644 index 00000000..2333db0b --- /dev/null +++ b/www/news/alyssa-resignation.md @@ -0,0 +1,77 @@ +% Alyssa Rosenzweig has resigned from the Libreboot project +% Leah Rowe +% 1 September 2017 + +Alyssa Rosenzweig has notified the rest of the team (Andrew Robbins, Paul +Kocialkowski, Leah Rowe and Swift Geek) of her intention to step down from the +core management team, as per [our management guidelines](../management.md), +due to increased pressure from school studies which prevent her from having +time to contribute. + +In her email, she wishes the Libreboot project well and states that she intends +to continue contributing in the future. + +I, Leah Rowe, wish Alyssa all the best in life, and I'm sure that this will be +felt by the other maintainers in Libreboot, and I'm extremely grateful for the +numerous invaluable contributions that she made to the project. + +A note about the hosting infrastructure, and sysadmin tasks +----------------------------------------------------------- + +Alyssa was previously acting as the system administrator for the Libreboot +project, in charge of maintaining the project's infrastructure. Additionally, +she was acting as Public Relations manager for the project; in particular, she +was handling Libreboot's application to join the GNU project. + +I have since assumed these responsibilities, at least for the time being, and +I will be working alongside the other members of the team going forward. +Since Alyssa had stepped down, nobody was in place to maintain the hosting +infrastructure for the project. Our old hosting provider was giving us issues, +so we switched hosting provider; this means that I'm currently maintaining the +hosting infrastructure for the project, since nobody else was willing to. + +The only piece of infrastructure currently missing is the mailing list. We now +have a fully functional mail server, and I will finish studying and installing +GNU Mailman version 3 (the software that will be used for handling the mailing +list). There are currently no repositories available for it on the GNU+Linux +distribution that libreboot.org uses (Debian), so we will have to maintain it +ourselves. + +Swift Geek also works alongside me, for sysadmin tasks, and has been +particularly helpful in advising on good practises for the setup of the new +mail server. I myself haven't had time to work on it for a while, but it will +be up soon. The mailing list that Alyssa created was only online for a week, +before we had to switch hosting provider for the project, and nobody had +started using it yet, so downtime for the mailing list hasn't been a huge +issue; people use the Notabug instance, and IRC. + +I will issue another news post, once the new mailing list is online. For the +time being, the links to it have been removed on the website. + +The mail server itself is online, so the 4 of us on the team now have +libreboot.org email addresses; these are published on the +[governance page](../management.md). If anyone wishes to contact a member of +the project directly via email, we recommend that you use these email +addresses. + +Of interest: the new hosting infrastructure for libreboot.org is entirely +libre. The main router on that network is a Libreboot system, with the router software +running on top of GNU+Linux. The server for libreboot.org (web and mail server) +is also a Libreboot system with GNU+Linux; postfix and dovecot for the mail +server, and nginx for the web server. DNS is also planned (the DNS hosting is +currently outsourced). + +Of further interest: libreboot.org is now IPv6-ready. All services are +dual stack IPv4+IPv6. Stronger encryption is used in the TLS configuration for +nginx aswell, for HTTPS, and HSTS is enabled by default. + +The certificate authority used for TLS is Let's Encrypt. This is used for +HTTPS and for encrypted connections to the mail server. + +The new hosting infrastructure is also much more secure than the previous one, +not just because Libreboot powers it but because of special configurations made +on externally accessible services (such as SSH and email). + +I am currently looking for a new colocation provider, but the hardware used +for hosting should be stable from now on. I have found one, which I'm looking +into, but I'm also considering other options. diff --git a/www/news/lenovo-recall.md b/www/news/lenovo-recall.md new file mode 100644 index 00000000..00256b72 --- /dev/null +++ b/www/news/lenovo-recall.md @@ -0,0 +1,11 @@ +% Lenovo Battery Recall for ThinkPad Laptops +% Johnny Rasnic +% 14 September 2017 + +[On 21 April 2015, Lenovo expanded a recall on Lenovo batteries found in ThinkPad models.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) +Libreboot-supported laptops that may be affected by this are the X200 and X200S. +To find out if you are affected, use [this Lenovo tool.](https://lenovobattery2014.orderz.com/) +Lenovo advises that owners of the recalled models "should turn off the system, remove the battery, +and only power your ThinkPad by plugging in the AC adapter and power cord." +Upon battery verification, Lenovo will replace recalled batteries free of charge. +Battery replacement instructions for the X200/X200s are found [on this page.](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) diff --git a/www/news/new-mailing-lists.md b/www/news/new-mailing-lists.md index 8d623331..e6db70af 100644 --- a/www/news/new-mailing-lists.md +++ b/www/news/new-mailing-lists.md @@ -9,8 +9,8 @@ The mailing list address is [development@libreboot.org](mailto:development@libreboot.org) Information about the mailing list and how to subscribe are -[here](../lists/). Archives of discussion threads -are [here](../pipermail/development/). +on the [lists page](../lists/). Archives of discussion threads +are in the [pipermail development directory](../pipermail/development/). This replaces the mailing lists that we had before. The mailing list software in use is [GNU Mailman](https://www.gnu.org/software/mailman/), which is also diff --git a/www/news/talos.md b/www/news/talos.md new file mode 100644 index 00000000..724934b0 --- /dev/null +++ b/www/news/talos.md @@ -0,0 +1,41 @@ +% TALOS II Secure Workstation, from Raptor Engineering +% Leah Rowe +% 15 August 2017 + +Recently, [Raptor Engineering](https://www.raptorcs.com/TALOSII/) has launched +a new series of workstation and server computers. These are high-end systems, +using the libre IBM POWER9 architecture, and the boot firmware is entirely +Free Software like Libreboot. + +This is the *first* OEM producing *high-end* systems, from the factory assembly +line, with completely libre boot firmware. The boot firmware, operating system +and everything else is entirely Free Software. While not technically libreboot, +the boot firmware on TALOS II is Free Software, so it was decided that the +TALOS II would be promoted here on libreboot.org. + +If you are in the market for a high-end, secure workstation or server with +100% free boot firmware (like Libreboot) and operating system, produced by +an OEM *hardware manufacturer* that cares about freedom, look no further than +the TALOS II from Raptor Engineering! + +Their website for pre-orders is here: +<https://www.raptorcs.com/TALOSII/> + +An entry for the TALOS II has also been added to the +[suppliers page](../suppliers.md) on libreboot.org. + +Raptor Engineering is the same company that ported the ASUS KFSN4-DRE, +KPGE-D16 and KCMA-D8 motherboards to Libreboot. In addition, they added support +for Hybrid Graphics on the ThinkPad T400 which Libreboot supports, enabling +those laptops to be used in freedom (with the AMD GPU disabled, in favour of +the Intel GPU which Libreboot has free video initialization for). + +In response to the TALOS II launch I, Leah Rowe, have removed the Libreboot D16 +(TALOS II's main competitor) from minifree.org, and removed the Minifree D16 +entries from the [suppliers page](../suppliers.md) on libreboot.org. +I encourage Vikings and Technoethical, also present on that suppliers page, to +do the same and discontinue their D16 products. The TALOS II is very important +for the future of free, libre computing and indeed the free software community +as a whole; if TALOS II fails, we will be stuck for a very long time without +any viable high-end workstations that are libre. High-end hardware is necessary +for modern software development. diff --git a/www/publish.sh b/www/publish.sh index f9aabf3e..9a8a6abc 100755 --- a/www/publish.sh +++ b/www/publish.sh @@ -1,7 +1,8 @@ -#!/bin/bash +#!/usr/bin/env bash # # Copyright (C) 2017 Alyssa Rosenzweig <alyssa@rosenzweig.io> # Copyright (C) 2017 Leah Rowe <info@minifree.org> +# Copyright (C) 2017 Michael Reed <michael@michaelreed.io> # # 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 @@ -19,14 +20,16 @@ [ "x${DEBUG+set}" = 'xset' ] && set -v set -e -echo $1 FILE=${1%.md} +TMPFILE=$(mktemp -t libreboot_www.XXXXXXXXXX) -cat $1 > temp.md +cat "$1" > "$TMPFILE" OPTS="-T Libreboot" -if [ "${FILE}" != "./index" ]; then +if [[ $FILE == "index" || $FILE == "./index" ]]; then + OPTS="--css /headercenter.css" +else if [[ $FILE == *suppliers ]] then RETURN="" @@ -41,38 +44,40 @@ if [ "${FILE}" != "./index" ]; then RETURN="<strong><a href='/git.html#editing-the-website-and-documentation-wiki-style'>Edit this page</a></strong> -- <a href='$DEST'>Back to previous index</a>" OPTS="-T Libreboot" fi -else - OPTS="--css /headercenter.css" fi if [[ $FILE = *suppliers ]]; then - printf "\n<strong><a href=\"/git.html#editing-the-website-and-documentation-wiki-style\">Edit this page</a></strong> -- <a href=\"../\">Back to previous page</a>\n" >> temp.md + printf '\n%s\n' "<strong><a href=\"/git.html#editing-the-website-and-documentation-wiki-style\">Edit this page</a></strong> -- <a href=\"../\">Back to previous page</a>" >> "$TMPFILE" fi -if [ "${FILE}" != "./docs/fdl-1.3" ] && [ "${FILE}" != "./conduct" ]; then - cat footer.md >> temp.md +if [[ $FILE != "./docs/fdl-1.3" && $FILE != "docs/fdl-1.3" && + $FILE != "./conduct" && $FILE != "conduct" ]]; then + cat footer.md >> "$TMPFILE" fi # change out .md -> .html -sed temp.md -i -e 's/\.md\(#[a-z\-]*\)*)/.html\1)/g' -sed temp.md -i -e 's/\.md\(#[a-z\-]*\)*]/.html\1]/g' +sed -i -e 's/\.md\(#[a-z\-]*\)*)/.html\1)/g' "$TMPFILE" +sed -i -e 's/\.md\(#[a-z\-]*\)*]/.html\1]/g' "$TMPFILE" # change out .md -> .html -sed temp.md -i -e 's/\.md\(#[a-z\-]*\)*)/.html\1)/g' -sed temp.md -i -e 's/\.md\(#[a-z\-]*\)*]/.html\1]/g' +sed -i -e 's/\.md\(#[a-z\-]*\)*)/.html\1)/g' "$TMPFILE" +sed -i -e 's/\.md\(#[a-z\-]*\)*]/.html\1]/g' "$TMPFILE" # work around issue #2872 -TOC=$(grep -q "^x-toc-enable: true$" temp.md && echo "--toc --toc-depth=2") || TOC="" +TOC=$(grep -q "^x-toc-enable: true$" "$TMPFILE" && printf '%s\n' "--toc --toc-depth=2") || TOC="" # work around heterogenous pandoc versions -SMART=$(pandoc -v | grep -q '2\.0' || echo "--smart") || SMART="" +SMART=$(pandoc -v | grep -q '2\.0' || printf '%s\n' "--smart") || SMART="" # chuck through pandoc -pandoc $TOC $SMART temp.md -s --css /global.css $OPTS \ - --template template.html --metadata return="$RETURN"> $FILE.html - -# additionally, produce bare file for RSS -pandoc $1 > $FILE.bare.html +# +# $OPTS must not be quoted, otherwise pandoc interprets '--css /headercenter.css' +# as one argument, when it is actually two. +pandoc $TOC $SMART "$TMPFILE" -s --css /global.css $OPTS \ + --template template.html --metadata return="$RETURN" > "$FILE.html" # generate section title anchors as [link] -sed $FILE.html -i -e 's_^<h\([123]\) id="\(.*\)">\(.*\)</h\1>_<div class="h"><h\1 id="\2">\3</h\1><a aria-hidden="true" href="#\2">[link]</a></div>_' +sed -i -e 's_^<h\([123]\) id="\(.*\)">\(.*\)</h\1>_<div class="h"><h\1 id="\2">\3</h\1><a aria-hidden="true" href="#\2">[link]</a></div>_' "$FILE.html" + +# clean up temporary file +rm -f "$TMPFILE" diff --git a/www/rsync.md b/www/rsync.md deleted file mode 100644 index 9ce29aa3..00000000 --- a/www/rsync.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Rsync repositories for the release archives -... - -Create a directory in your web directory (e.g. libreboot/) and put one -of these in your crontab: - -Libreboot project, UK (main rsync mirror) ------------------------------------------ - -**rsync -avxP --delete --stats rsync.libreboot.org::mirrormirror -/path/to/docroot/libreboot/** - -University of Kent, UK (backup mirror) --------------------------------------- - -**rsync -avxP --delete --stats -rsync://rsync.mirrorservice.org/libreboot.org/release/ -/path/to/docroot/libreboot/** - -Princeton university, USA (backup mirror) ------------------------------------------ - -**rsync -avxP --delete --stats -rsync://mirror.math.princeton.edu/pub/libreboot/ -/path/to/docroot/libreboot/** - -linux.ro, Romania (backup mirror) ---------------------------------- - -**rsync -avxP --delete --stats rsync://ftp.linux.ro/libreboot/ -/path/to/docroot/libreboot/** - -mirror.si, Slovenia (backup mirror) ------------------------------------ - -**rsync -avxP --delete --stats rsync://libreboot.mirror.si/libreboot -/path/to/docroot/libreboot/** - -Are you running a mirror? Contact the libreboot project, and the link will be -added to the [download](download.md) page. - -Libreboot includes statically linked executables. If you need the -sources for those statically linked dependencies inside the executables, -then you can contact the libreboot project using the details on the home -page; source code will be provided. You can download this source code -from [here](ccsource.md). diff --git a/www/suppliers.md b/www/suppliers.md index 89d6a050..2c61164f 100644 --- a/www/suppliers.md +++ b/www/suppliers.md @@ -24,14 +24,6 @@ Laptops: - [Libreboot T400 laptop](https://minifree.org/product/libreboot-t400/) (FSF RYF certified) -Desktops: - -- [Libreboot D16 desktop/workstation](https://minifree.org/product/libreboot-d16/) - -Servers: - -- [Libreboot D16 server](https://minifree.org/product/libreboot-d16-server/) - Services: - [Libreboot installation service](https://minifree.org/product/libreboot-installation-service/) @@ -43,6 +35,22 @@ Merchendise: - [Libreboot X200 docking station](https://minifree.org/product/docking-station-for-libreboot-x200/) - [Libreboot stickers](https://minifree.org/product/libreboot-stickers/) +Raptor Engineering +------------------ + +Raptor is the world's first libre OEM, producing systems with libre boot +firmware and operating system preinstalled, *from the factory*. + +Website for pre-orders: +<https://www.raptorcs.com/TALOSII/> + +NOTE: this isn't technically Libreboot, but the boot firmware is entirely free. + +This is the same company that ported the ASUS KFSN4-DRE, KGPE-D16 and KCMA-D8 +mainboards to Libreboot. Raptor has also helped improve other ports in Libreboot, +for instance they added support for *switchable graphics* on the ThinkPad T400 +which Libreboot supports. + Technoethical ------------- |