ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 1


   1              		.cpu cortex-m3
   2              		.eabi_attribute 20, 1
   3              		.eabi_attribute 21, 1
   4              		.eabi_attribute 23, 3
   5              		.eabi_attribute 24, 1
   6              		.eabi_attribute 25, 1
   7              		.eabi_attribute 26, 1
   8              		.eabi_attribute 30, 1
   9              		.eabi_attribute 34, 1
  10              		.eabi_attribute 18, 4
  11              		.file	"main.c"
  12              		.text
  13              	.Ltext0:
  14              		.cfi_sections	.debug_frame
  15              		.section	.text.MX_GPIO_Init,"ax",%progbits
  16              		.align	1
  17              		.syntax unified
  18              		.thumb
  19              		.thumb_func
  20              		.fpu softvfp
  22              	MX_GPIO_Init:
  23              	.LFB73:
  24              		.file 1 "Src/main.c"
   1:Src/main.c    **** /* USER CODE BEGIN Header */
   2:Src/main.c    **** /**
   3:Src/main.c    ****   ******************************************************************************
   4:Src/main.c    ****   * @file           : main.c
   5:Src/main.c    ****   * @brief          : Main program body
   6:Src/main.c    ****   ******************************************************************************
   7:Src/main.c    ****   * @attention
   8:Src/main.c    ****   *
   9:Src/main.c    ****   * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
  10:Src/main.c    ****   * All rights reserved.</center></h2>
  11:Src/main.c    ****   *
  12:Src/main.c    ****   * This software component is licensed by ST under Ultimate Liberty license
  13:Src/main.c    ****   * SLA0044, the "License"; You may not use this file except in compliance with
  14:Src/main.c    ****   * the License. You may obtain a copy of the License at:
  15:Src/main.c    ****   *                             www.st.com/SLA0044
  16:Src/main.c    ****   *
  17:Src/main.c    ****   ******************************************************************************
  18:Src/main.c    ****   */
  19:Src/main.c    **** /* USER CODE END Header */
  20:Src/main.c    **** 
  21:Src/main.c    **** /* Includes ------------------------------------------------------------------*/
  22:Src/main.c    **** #include "main.h"
  23:Src/main.c    **** #include "usb_device.h"
  24:Src/main.c    **** 
  25:Src/main.c    **** /* Private includes ----------------------------------------------------------*/
  26:Src/main.c    **** /* USER CODE BEGIN Includes */
  27:Src/main.c    **** #include "PS2/PS2Keyboard.c"
  28:Src/main.c    **** #include "usbd_hid.h"
  29:Src/main.c    **** /* USER CODE END Includes */
  30:Src/main.c    **** 
  31:Src/main.c    **** /* Private typedef -----------------------------------------------------------*/
  32:Src/main.c    **** /* USER CODE BEGIN PTD */
  33:Src/main.c    **** extern USBD_HandleTypeDef hUsbDeviceFS;
  34:Src/main.c    **** /* USER CODE END PTD */
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 2


  35:Src/main.c    **** 
  36:Src/main.c    **** /* Private define ------------------------------------------------------------*/
  37:Src/main.c    **** /* USER CODE BEGIN PD */
  38:Src/main.c    **** 
  39:Src/main.c    **** /* USER CODE END PD */
  40:Src/main.c    **** 
  41:Src/main.c    **** /* Private macro -------------------------------------------------------------*/
  42:Src/main.c    **** /* USER CODE BEGIN PM */
  43:Src/main.c    **** 
  44:Src/main.c    **** /* USER CODE END PM */
  45:Src/main.c    **** 
  46:Src/main.c    **** /* Private variables ---------------------------------------------------------*/
  47:Src/main.c    **** 
  48:Src/main.c    **** /* USER CODE BEGIN PV */
  49:Src/main.c    **** 
  50:Src/main.c    **** /* USER CODE END PV */
  51:Src/main.c    **** 
  52:Src/main.c    **** /* Private function prototypes -----------------------------------------------*/
  53:Src/main.c    **** void SystemClock_Config(void);
  54:Src/main.c    **** static void MX_GPIO_Init(void);
  55:Src/main.c    **** /* USER CODE BEGIN PFP */
  56:Src/main.c    **** 
  57:Src/main.c    **** /* USER CODE END PFP */
  58:Src/main.c    **** 
  59:Src/main.c    **** /* Private user code ---------------------------------------------------------*/
  60:Src/main.c    **** /* USER CODE BEGIN 0 */
  61:Src/main.c    **** 
  62:Src/main.c    **** /* USER CODE END 0 */
  63:Src/main.c    **** 
  64:Src/main.c    **** /**
  65:Src/main.c    ****   * @brief  The application entry point.
  66:Src/main.c    ****   * @retval int
  67:Src/main.c    ****   */
  68:Src/main.c    **** int main(void)
  69:Src/main.c    **** {
  70:Src/main.c    ****   /* USER CODE BEGIN 1 */
  71:Src/main.c    **** 
  72:Src/main.c    ****   // HID Mouse
  73:Src/main.c    ****   struct mouseHID_t {
  74:Src/main.c    ****       uint8_t buttons;
  75:Src/main.c    ****       int8_t x;
  76:Src/main.c    ****       int8_t y;
  77:Src/main.c    ****       int8_t wheel;
  78:Src/main.c    **** 	  uint8_t wakeup;
  79:Src/main.c    ****   };
  80:Src/main.c    ****   struct mouseHID_t mouseHID;
  81:Src/main.c    ****   
  82:Src/main.c    ****   mouseHID.buttons = 0;
  83:Src/main.c    ****   mouseHID.x = 0;
  84:Src/main.c    ****   mouseHID.y = 0;
  85:Src/main.c    ****   mouseHID.wheel = 0;
  86:Src/main.c    ****   mouseHID.wakeup = 0;
  87:Src/main.c    **** 
  88:Src/main.c    **** 
  89:Src/main.c    **** 
  90:Src/main.c    **** 
  91:Src/main.c    **** 
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 3


  92:Src/main.c    **** 
  93:Src/main.c    **** 
  94:Src/main.c    **** 
  95:Src/main.c    ****   /* USER CODE END 1 */
  96:Src/main.c    **** 
  97:Src/main.c    ****   /* MCU Configuration--------------------------------------------------------*/
  98:Src/main.c    **** 
  99:Src/main.c    ****   /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
 100:Src/main.c    ****   HAL_Init();
 101:Src/main.c    **** 
 102:Src/main.c    ****   /* USER CODE BEGIN Init */
 103:Src/main.c    **** 
 104:Src/main.c    ****   /* USER CODE END Init */
 105:Src/main.c    **** 
 106:Src/main.c    ****   /* Configure the system clock */
 107:Src/main.c    ****   SystemClock_Config();
 108:Src/main.c    **** 
 109:Src/main.c    ****   /* USER CODE BEGIN SysInit */
 110:Src/main.c    **** 
 111:Src/main.c    ****   /* USER CODE END SysInit */
 112:Src/main.c    **** 
 113:Src/main.c    ****   /* Initialize all configured peripherals */
 114:Src/main.c    ****   MX_GPIO_Init();
 115:Src/main.c    ****   MX_USB_DEVICE_Init();
 116:Src/main.c    ****   /* USER CODE BEGIN 2 */
 117:Src/main.c    **** 
 118:Src/main.c    ****   /* USER CODE END 2 */
 119:Src/main.c    **** 
 120:Src/main.c    ****   /* Infinite loop */
 121:Src/main.c    ****   /* USER CODE BEGIN WHILE */
 122:Src/main.c    ****   while (1)
 123:Src/main.c    ****   {
 124:Src/main.c    ****  	unsigned char c=get_PS2scan_code();
 125:Src/main.c    **** 	switch(c)
 126:Src/main.c    **** 		{
 127:Src/main.c    **** 		case 0x09: mouseHID.x = 10; break;// desine
 128:Src/main.c    **** 		case 0x16: mouseHID.x = -10; break;// kaire		
 129:Src/main.c    **** 		case 0x3e: mouseHID.y = -10; break;// virsus
 130:Src/main.c    **** 		case 0x2e: mouseHID.y = 10; break;// apacia
 131:Src/main.c    **** 		case 0x4b: mouseHID.buttons = 1; break;// mygtukas kaireje
 132:Src/main.c    **** 		case 0x2c: mouseHID.buttons = 2; break;// mygtukas desineje
 133:Src/main.c    **** 		case 0xf0: while(get_PS2scan_code()){}; break; // klaviso atspaudimas
 134:Src/main.c    **** 		}
 135:Src/main.c    ****   if (c!=0) {	
 136:Src/main.c    **** 		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
 137:Src/main.c    **** 		USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&mouseHID, sizeof(struct mouseHID_t));
 138:Src/main.c    **** 			HAL_Delay(10 ); // rodos ne dazniau nei 10ms??
 139:Src/main.c    **** 			mouseHID.buttons = 0;
 140:Src/main.c    **** 			mouseHID.x = 0;
 141:Src/main.c    **** 			mouseHID.y = 0;
 142:Src/main.c    **** 		USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&mouseHID, sizeof(struct mouseHID_t));
 143:Src/main.c    **** 		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
 144:Src/main.c    **** 		}
 145:Src/main.c    ****     /* USER CODE END WHILE */
 146:Src/main.c    ****     /* USER CODE BEGIN 3 */
 147:Src/main.c    ****   }
 148:Src/main.c    ****   /* USER CODE END 3 */
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 4


 149:Src/main.c    **** }
 150:Src/main.c    **** 
 151:Src/main.c    **** /**
 152:Src/main.c    ****   * @brief System Clock Configuration
 153:Src/main.c    ****   * @retval None
 154:Src/main.c    ****   */
 155:Src/main.c    **** void SystemClock_Config(void)
 156:Src/main.c    **** {
 157:Src/main.c    ****   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
 158:Src/main.c    ****   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 159:Src/main.c    ****   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
 160:Src/main.c    **** 
 161:Src/main.c    ****   /** Initializes the CPU, AHB and APB busses clocks 
 162:Src/main.c    ****   */
 163:Src/main.c    ****   RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
 164:Src/main.c    ****   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
 165:Src/main.c    ****   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
 166:Src/main.c    ****   RCC_OscInitStruct.HSIState = RCC_HSI_ON;
 167:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 168:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
 169:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
 170:Src/main.c    ****   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
 171:Src/main.c    ****   {
 172:Src/main.c    ****     Error_Handler();
 173:Src/main.c    ****   }
 174:Src/main.c    ****   /** Initializes the CPU, AHB and APB busses clocks 
 175:Src/main.c    ****   */
 176:Src/main.c    ****   RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
 177:Src/main.c    ****                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
 178:Src/main.c    ****   RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
 179:Src/main.c    ****   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
 180:Src/main.c    ****   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
 181:Src/main.c    ****   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
 182:Src/main.c    **** 
 183:Src/main.c    ****   if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
 184:Src/main.c    ****   {
 185:Src/main.c    ****     Error_Handler();
 186:Src/main.c    ****   }
 187:Src/main.c    ****   PeriphClkInit.PeriphClockSelection = RCC_PERIPHCLK_USB;
 188:Src/main.c    ****   PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL;
 189:Src/main.c    ****   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
 190:Src/main.c    ****   {
 191:Src/main.c    ****     Error_Handler();
 192:Src/main.c    ****   }
 193:Src/main.c    **** }
 194:Src/main.c    **** 
 195:Src/main.c    **** /**
 196:Src/main.c    ****   * @brief GPIO Initialization Function
 197:Src/main.c    ****   * @param None
 198:Src/main.c    ****   * @retval None
 199:Src/main.c    ****   */
 200:Src/main.c    **** static void MX_GPIO_Init(void)
 201:Src/main.c    **** {
  25              		.loc 1 201 0
  26              		.cfi_startproc
  27              		@ args = 0, pretend = 0, frame = 32
  28              		@ frame_needed = 0, uses_anonymous_args = 0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 5


  29 0000 70B5     		push	{r4, r5, r6, lr}
  30              	.LCFI0:
  31              		.cfi_def_cfa_offset 16
  32              		.cfi_offset 4, -16
  33              		.cfi_offset 5, -12
  34              		.cfi_offset 6, -8
  35              		.cfi_offset 14, -4
  36 0002 88B0     		sub	sp, sp, #32
  37              	.LCFI1:
  38              		.cfi_def_cfa_offset 48
 202:Src/main.c    ****   GPIO_InitTypeDef GPIO_InitStruct = {0};
  39              		.loc 1 202 0
  40 0004 0024     		movs	r4, #0
  41 0006 0494     		str	r4, [sp, #16]
  42 0008 0594     		str	r4, [sp, #20]
  43 000a 0694     		str	r4, [sp, #24]
  44 000c 0794     		str	r4, [sp, #28]
  45              	.LBB2:
 203:Src/main.c    **** 
 204:Src/main.c    ****   /* GPIO Ports Clock Enable */
 205:Src/main.c    ****   __HAL_RCC_GPIOC_CLK_ENABLE();
  46              		.loc 1 205 0
  47 000e 274B     		ldr	r3, .L3
  48 0010 9A69     		ldr	r2, [r3, #24]
  49 0012 42F01002 		orr	r2, r2, #16
  50 0016 9A61     		str	r2, [r3, #24]
  51 0018 9A69     		ldr	r2, [r3, #24]
  52 001a 02F01002 		and	r2, r2, #16
  53 001e 0192     		str	r2, [sp, #4]
  54 0020 019A     		ldr	r2, [sp, #4]
  55              	.LBE2:
  56              	.LBB3:
 206:Src/main.c    ****   __HAL_RCC_GPIOD_CLK_ENABLE();
  57              		.loc 1 206 0
  58 0022 9A69     		ldr	r2, [r3, #24]
  59 0024 42F02002 		orr	r2, r2, #32
  60 0028 9A61     		str	r2, [r3, #24]
  61 002a 9A69     		ldr	r2, [r3, #24]
  62 002c 02F02002 		and	r2, r2, #32
  63 0030 0292     		str	r2, [sp, #8]
  64 0032 029A     		ldr	r2, [sp, #8]
  65              	.LBE3:
  66              	.LBB4:
 207:Src/main.c    ****   __HAL_RCC_GPIOA_CLK_ENABLE();
  67              		.loc 1 207 0
  68 0034 9A69     		ldr	r2, [r3, #24]
  69 0036 42F00402 		orr	r2, r2, #4
  70 003a 9A61     		str	r2, [r3, #24]
  71 003c 9B69     		ldr	r3, [r3, #24]
  72 003e 03F00403 		and	r3, r3, #4
  73 0042 0393     		str	r3, [sp, #12]
  74 0044 039B     		ldr	r3, [sp, #12]
  75              	.LBE4:
 208:Src/main.c    **** 
 209:Src/main.c    ****   /*Configure GPIO pin Output Level */
 210:Src/main.c    ****   HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
  76              		.loc 1 210 0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 6


  77 0046 1A4E     		ldr	r6, .L3+4
  78 0048 2246     		mov	r2, r4
  79 004a 4FF40051 		mov	r1, #8192
  80 004e 3046     		mov	r0, r6
  81 0050 FFF7FEFF 		bl	HAL_GPIO_WritePin
  82              	.LVL0:
 211:Src/main.c    **** 
 212:Src/main.c    ****   /*Configure GPIO pin : LED_Pin */
 213:Src/main.c    ****   GPIO_InitStruct.Pin = LED_Pin;
  83              		.loc 1 213 0
  84 0054 4FF40053 		mov	r3, #8192
  85 0058 0493     		str	r3, [sp, #16]
 214:Src/main.c    ****   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  86              		.loc 1 214 0
  87 005a 0125     		movs	r5, #1
  88 005c 0595     		str	r5, [sp, #20]
 215:Src/main.c    ****   GPIO_InitStruct.Pull = GPIO_NOPULL;
  89              		.loc 1 215 0
  90 005e 0694     		str	r4, [sp, #24]
 216:Src/main.c    ****   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
  91              		.loc 1 216 0
  92 0060 0223     		movs	r3, #2
  93 0062 0793     		str	r3, [sp, #28]
 217:Src/main.c    ****   HAL_GPIO_Init(LED_GPIO_Port, &GPIO_InitStruct);
  94              		.loc 1 217 0
  95 0064 04A9     		add	r1, sp, #16
  96 0066 3046     		mov	r0, r6
  97 0068 FFF7FEFF 		bl	HAL_GPIO_Init
  98              	.LVL1:
 218:Src/main.c    **** 
 219:Src/main.c    ****   /*Configure GPIO pin : PS2_CLK_Pin */
 220:Src/main.c    ****   GPIO_InitStruct.Pin = PS2_CLK_Pin;
  99              		.loc 1 220 0
 100 006c 4FF40073 		mov	r3, #512
 101 0070 0493     		str	r3, [sp, #16]
 221:Src/main.c    ****   GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
 102              		.loc 1 221 0
 103 0072 104B     		ldr	r3, .L3+8
 104 0074 0593     		str	r3, [sp, #20]
 222:Src/main.c    ****   GPIO_InitStruct.Pull = GPIO_PULLUP;
 105              		.loc 1 222 0
 106 0076 0695     		str	r5, [sp, #24]
 223:Src/main.c    ****   HAL_GPIO_Init(PS2_CLK_GPIO_Port, &GPIO_InitStruct);
 107              		.loc 1 223 0
 108 0078 A6F50066 		sub	r6, r6, #2048
 109 007c 04A9     		add	r1, sp, #16
 110 007e 3046     		mov	r0, r6
 111 0080 FFF7FEFF 		bl	HAL_GPIO_Init
 112              	.LVL2:
 224:Src/main.c    **** 
 225:Src/main.c    ****   /*Configure GPIO pin : PS2_DATA_Pin */
 226:Src/main.c    ****   GPIO_InitStruct.Pin = PS2_DATA_Pin;
 113              		.loc 1 226 0
 114 0084 4FF48063 		mov	r3, #1024
 115 0088 0493     		str	r3, [sp, #16]
 227:Src/main.c    ****   GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
 116              		.loc 1 227 0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 7


 117 008a 0594     		str	r4, [sp, #20]
 228:Src/main.c    ****   GPIO_InitStruct.Pull = GPIO_PULLUP;
 118              		.loc 1 228 0
 119 008c 0695     		str	r5, [sp, #24]
 229:Src/main.c    ****   HAL_GPIO_Init(PS2_DATA_GPIO_Port, &GPIO_InitStruct);
 120              		.loc 1 229 0
 121 008e 04A9     		add	r1, sp, #16
 122 0090 3046     		mov	r0, r6
 123 0092 FFF7FEFF 		bl	HAL_GPIO_Init
 124              	.LVL3:
 230:Src/main.c    **** 
 231:Src/main.c    ****   /* EXTI interrupt init*/
 232:Src/main.c    ****   HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0);
 125              		.loc 1 232 0
 126 0096 2246     		mov	r2, r4
 127 0098 2146     		mov	r1, r4
 128 009a 1720     		movs	r0, #23
 129 009c FFF7FEFF 		bl	HAL_NVIC_SetPriority
 130              	.LVL4:
 233:Src/main.c    ****   HAL_NVIC_EnableIRQ(EXTI9_5_IRQn);
 131              		.loc 1 233 0
 132 00a0 1720     		movs	r0, #23
 133 00a2 FFF7FEFF 		bl	HAL_NVIC_EnableIRQ
 134              	.LVL5:
 234:Src/main.c    **** 
 235:Src/main.c    **** }
 135              		.loc 1 235 0
 136 00a6 08B0     		add	sp, sp, #32
 137              	.LCFI2:
 138              		.cfi_def_cfa_offset 16
 139              		@ sp needed
 140 00a8 70BD     		pop	{r4, r5, r6, pc}
 141              	.L4:
 142 00aa 00BF     		.align	2
 143              	.L3:
 144 00ac 00100240 		.word	1073876992
 145 00b0 00100140 		.word	1073811456
 146 00b4 00001110 		.word	269549568
 147              		.cfi_endproc
 148              	.LFE73:
 150              		.section	.text.scan_decode,"ax",%progbits
 151              		.align	1
 152              		.global	scan_decode
 153              		.syntax unified
 154              		.thumb
 155              		.thumb_func
 156              		.fpu softvfp
 158              	scan_decode:
 159              	.LFB68:
 160              		.file 2 "Src/PS2/PS2Keyboard.c"
   1:Src/PS2/PS2Keyboard.c **** /* PS2 keyboard */
   2:Src/PS2/PS2Keyboard.c **** /* dalinai vogtas is interneto */
   3:Src/PS2/PS2Keyboard.c **** 
   4:Src/PS2/PS2Keyboard.c **** /* ************************************************************************
   5:Src/PS2/PS2Keyboard.c **** ** modifikuotas STM32F1xx cube 
   6:Src/PS2/PS2Keyboard.c **** ** Naudoja alias: PS2_DATA_GPIO_Port, PS2_DATA_Pin , PS2_CLK_Pin .
   7:Src/PS2/PS2Keyboard.c **** ** Reikelaingas pertraukimas H->L and CLK, kuris kviecia ps2interrupt();
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 8


   8:Src/PS2/PS2Keyboard.c **** **
   9:Src/PS2/PS2Keyboard.c **** ** (copyleft) 2020 http://www.vabolis.lt
  10:Src/PS2/PS2Keyboard.c **** *************************************************************************** */
  11:Src/PS2/PS2Keyboard.c **** #include "ps2_codes.h" // PS2 klavieturos scan kodai
  12:Src/PS2/PS2Keyboard.c **** #include "usb_hid_keys.h"  // HID klavieturos scan kodai
  13:Src/PS2/PS2Keyboard.c **** 
  14:Src/PS2/PS2Keyboard.c **** 
  15:Src/PS2/PS2Keyboard.c **** 
  16:Src/PS2/PS2Keyboard.c **** #define PS2BUFFER_SIZE 16
  17:Src/PS2/PS2Keyboard.c **** static volatile uint8_t PS2buffer[PS2BUFFER_SIZE];
  18:Src/PS2/PS2Keyboard.c **** static volatile uint8_t head, tail;
  19:Src/PS2/PS2Keyboard.c **** 
  20:Src/PS2/PS2Keyboard.c **** 
  21:Src/PS2/PS2Keyboard.c **** 
  22:Src/PS2/PS2Keyboard.c **** // mini Amstrad klavietura -> ASCII
  23:Src/PS2/PS2Keyboard.c **** const unsigned char amstrad2ascii[] = {
  24:Src/PS2/PS2Keyboard.c **** 0,
  25:Src/PS2/PS2Keyboard.c **** 0, // 1
  26:Src/PS2/PS2Keyboard.c **** 0, // 2
  27:Src/PS2/PS2Keyboard.c **** 'j', // 3 - j
  28:Src/PS2/PS2Keyboard.c **** 0, // 4
  29:Src/PS2/PS2Keyboard.c **** 'b', // 5 - b
  30:Src/PS2/PS2Keyboard.c **** 0, // 6 - ADDRESS BOOK
  31:Src/PS2/PS2Keyboard.c **** 0, // 7
  32:Src/PS2/PS2Keyboard.c **** 0, // 8
  33:Src/PS2/PS2Keyboard.c **** 0, // 9 - CURSOR RIGHT
  34:Src/PS2/PS2Keyboard.c **** 0, // a
  35:Src/PS2/PS2Keyboard.c **** 'v', // b - v
  36:Src/PS2/PS2Keyboard.c **** 0, // c
  37:Src/PS2/PS2Keyboard.c **** 'u', // d - u
  38:Src/PS2/PS2Keyboard.c **** 'i', // e - i
  39:Src/PS2/PS2Keyboard.c **** 0, // f
  40:Src/PS2/PS2Keyboard.c **** 0, // 10
  41:Src/PS2/PS2Keyboard.c **** 0, // 11
  42:Src/PS2/PS2Keyboard.c **** 0, // 12
  43:Src/PS2/PS2Keyboard.c **** 0, // 13
  44:Src/PS2/PS2Keyboard.c **** 0, // 14
  45:Src/PS2/PS2Keyboard.c **** 0, // 15 - FAX
  46:Src/PS2/PS2Keyboard.c **** 0, // 16 - CURSOR LEFT
  47:Src/PS2/PS2Keyboard.c **** 0, // 17
  48:Src/PS2/PS2Keyboard.c **** 0, // 18
  49:Src/PS2/PS2Keyboard.c **** 0, // 19
  50:Src/PS2/PS2Keyboard.c **** 0, // 1a - MOBILE
  51:Src/PS2/PS2Keyboard.c **** '5', // 1b - 5
  52:Src/PS2/PS2Keyboard.c **** 0, // 1c - EMAIL
  53:Src/PS2/PS2Keyboard.c **** '6', // 1d - 6
  54:Src/PS2/PS2Keyboard.c **** '7', // 1e - 7
  55:Src/PS2/PS2Keyboard.c **** 0, // 1f
  56:Src/PS2/PS2Keyboard.c **** 0, // 20
  57:Src/PS2/PS2Keyboard.c **** 'q', // 21 - q
  58:Src/PS2/PS2Keyboard.c **** '4', // 22 - 4
  59:Src/PS2/PS2Keyboard.c **** 'w', // 23 - w
  60:Src/PS2/PS2Keyboard.c **** 'e', // 24 - e
  61:Src/PS2/PS2Keyboard.c **** 0, // 25
  62:Src/PS2/PS2Keyboard.c **** 'r', // 26 - r
  63:Src/PS2/PS2Keyboard.c **** 0, // 27
  64:Src/PS2/PS2Keyboard.c **** 0, // 28
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 9


  65:Src/PS2/PS2Keyboard.c **** 'g', // 29 - g
  66:Src/PS2/PS2Keyboard.c **** 0, // 2a - SMS
  67:Src/PS2/PS2Keyboard.c **** 0, // 2b
  68:Src/PS2/PS2Keyboard.c **** '\n', // 2c - ENTER
  69:Src/PS2/PS2Keyboard.c **** 0, // 2d
  70:Src/PS2/PS2Keyboard.c **** 0, // 2e - CURSOR DOWN
  71:Src/PS2/PS2Keyboard.c **** 0, // 2f
  72:Src/PS2/PS2Keyboard.c **** 0, // 30
  73:Src/PS2/PS2Keyboard.c **** 'a', // 31 - a
  74:Src/PS2/PS2Keyboard.c **** 'o', // 32 - o
  75:Src/PS2/PS2Keyboard.c **** 's', // 33 - s
  76:Src/PS2/PS2Keyboard.c **** 'p', // 34 - p
  77:Src/PS2/PS2Keyboard.c **** 'd', // 35 - d
  78:Src/PS2/PS2Keyboard.c **** 'f', // 36 - f
  79:Src/PS2/PS2Keyboard.c **** 0, // 37
  80:Src/PS2/PS2Keyboard.c **** 0, // 38
  81:Src/PS2/PS2Keyboard.c **** 0, // 39
  82:Src/PS2/PS2Keyboard.c **** 'l', // 3a - l
  83:Src/PS2/PS2Keyboard.c **** '\\', // 3b - \'
  84:Src/PS2/PS2Keyboard.c **** 0, // 3c - LSHIFT
  85:Src/PS2/PS2Keyboard.c **** 'z', // 3d - z
  86:Src/PS2/PS2Keyboard.c **** 0, // 3e - CURSOR UP
  87:Src/PS2/PS2Keyboard.c **** 0, // 3f
  88:Src/PS2/PS2Keyboard.c **** 0, // 40
  89:Src/PS2/PS2Keyboard.c **** 'n', // 41 - n
  90:Src/PS2/PS2Keyboard.c **** 'm', // 42 - m
  91:Src/PS2/PS2Keyboard.c **** '?', // 43 - .?/
  92:Src/PS2/PS2Keyboard.c **** ':', // 44 - ;:
  93:Src/PS2/PS2Keyboard.c **** 0, // 45
  94:Src/PS2/PS2Keyboard.c **** 0, // 46 - SERVICES
  95:Src/PS2/PS2Keyboard.c **** 0, // 47
  96:Src/PS2/PS2Keyboard.c **** 0, // 48
  97:Src/PS2/PS2Keyboard.c **** 0, // 49 - SYMBOL
  98:Src/PS2/PS2Keyboard.c **** 0, // 4a
  99:Src/PS2/PS2Keyboard.c **** ' ', // 4b - SPACE
 100:Src/PS2/PS2Keyboard.c **** 0, // 4c
 101:Src/PS2/PS2Keyboard.c **** 0, // 4d
 102:Src/PS2/PS2Keyboard.c **** 'x', // 4e - x
 103:Src/PS2/PS2Keyboard.c **** 0, // 4f
 104:Src/PS2/PS2Keyboard.c **** 0, // 50
 105:Src/PS2/PS2Keyboard.c **** 0, // 51
 106:Src/PS2/PS2Keyboard.c **** 't', // 52 - t
 107:Src/PS2/PS2Keyboard.c **** 0, // 53
 108:Src/PS2/PS2Keyboard.c **** 'c', // 54 - c
 109:Src/PS2/PS2Keyboard.c **** 0, // 55 - RIGHT SHIFT
 110:Src/PS2/PS2Keyboard.c **** 0, // 56
 111:Src/PS2/PS2Keyboard.c **** 0, // 57
 112:Src/PS2/PS2Keyboard.c **** 0, // 58
 113:Src/PS2/PS2Keyboard.c **** 0, // 59
 114:Src/PS2/PS2Keyboard.c **** 0, // 5a
 115:Src/PS2/PS2Keyboard.c **** 'h', // 5b - h
 116:Src/PS2/PS2Keyboard.c **** 0, // 5c
 117:Src/PS2/PS2Keyboard.c **** 'y', // 5d - y
 118:Src/PS2/PS2Keyboard.c **** 0, // 5e
 119:Src/PS2/PS2Keyboard.c **** 0, // 5f
 120:Src/PS2/PS2Keyboard.c **** 0, // 60
 121:Src/PS2/PS2Keyboard.c **** 0, // 61
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 10


 122:Src/PS2/PS2Keyboard.c **** 0, // 62
 123:Src/PS2/PS2Keyboard.c **** 0, // 63
 124:Src/PS2/PS2Keyboard.c **** 0, // 64
 125:Src/PS2/PS2Keyboard.c **** 0, // 65
 126:Src/PS2/PS2Keyboard.c **** 0, // 66
 127:Src/PS2/PS2Keyboard.c **** 0, // 67
 128:Src/PS2/PS2Keyboard.c **** 0, // 68
 129:Src/PS2/PS2Keyboard.c **** 0, // 69 - OFFICE
 130:Src/PS2/PS2Keyboard.c **** 0, // 6a
 131:Src/PS2/PS2Keyboard.c **** '3', // 6b - 3
 132:Src/PS2/PS2Keyboard.c **** 127, // 6c - del
 133:Src/PS2/PS2Keyboard.c **** 0, // 6d
 134:Src/PS2/PS2Keyboard.c **** 0, // 6e
 135:Src/PS2/PS2Keyboard.c **** 0, // 6f
 136:Src/PS2/PS2Keyboard.c **** 0, // 70 - STORE
 137:Src/PS2/PS2Keyboard.c **** 27, // 71 - Esc / STOP
 138:Src/PS2/PS2Keyboard.c **** 0, // 72 - HOME
 139:Src/PS2/PS2Keyboard.c **** '2', // 73 - 2
 140:Src/PS2/PS2Keyboard.c **** '1', // 74 - 1
 141:Src/PS2/PS2Keyboard.c **** '0', // 75 - 0
 142:Src/PS2/PS2Keyboard.c **** 'k', // 76 - k
 143:Src/PS2/PS2Keyboard.c **** 0, // 77 - INTERNET
 144:Src/PS2/PS2Keyboard.c **** 0, // 78
 145:Src/PS2/PS2Keyboard.c **** '8', // 79 - 8
 146:Src/PS2/PS2Keyboard.c **** 0, // 7a - SETUP
 147:Src/PS2/PS2Keyboard.c **** 0, // 7b
 148:Src/PS2/PS2Keyboard.c **** 0, // 7c - GAMES
 149:Src/PS2/PS2Keyboard.c **** '9', // 7d - 9
 150:Src/PS2/PS2Keyboard.c **** 0, // 7e
 151:Src/PS2/PS2Keyboard.c **** 0, // 7f
 152:Src/PS2/PS2Keyboard.c **** 0, // 80
 153:Src/PS2/PS2Keyboard.c **** 0, // 81
 154:Src/PS2/PS2Keyboard.c **** 0, // 82
 155:Src/PS2/PS2Keyboard.c **** 0, // 83 - PRINT
 156:Src/PS2/PS2Keyboard.c **** 0
 157:Src/PS2/PS2Keyboard.c **** };
 158:Src/PS2/PS2Keyboard.c **** 
 159:Src/PS2/PS2Keyboard.c **** 
 160:Src/PS2/PS2Keyboard.c **** // mini Amstrad klavietura -> HID Key Scans
 161:Src/PS2/PS2Keyboard.c **** const unsigned char amstrad2hid[] = {
 162:Src/PS2/PS2Keyboard.c **** 0,
 163:Src/PS2/PS2Keyboard.c **** 0, // 1
 164:Src/PS2/PS2Keyboard.c **** 0, // 2
 165:Src/PS2/PS2Keyboard.c **** KEY_J, // 3 - j
 166:Src/PS2/PS2Keyboard.c **** 0, // 4
 167:Src/PS2/PS2Keyboard.c **** KEY_B, // 5 - b
 168:Src/PS2/PS2Keyboard.c **** 0, // 6 - ADDRESS BOOK
 169:Src/PS2/PS2Keyboard.c **** 0, // 7
 170:Src/PS2/PS2Keyboard.c **** 0, // 8
 171:Src/PS2/PS2Keyboard.c **** KEY_RIGHT, // 9 - CURSOR RIGHT
 172:Src/PS2/PS2Keyboard.c **** 0, // a
 173:Src/PS2/PS2Keyboard.c **** KEY_V, // b - v
 174:Src/PS2/PS2Keyboard.c **** 0, // c
 175:Src/PS2/PS2Keyboard.c **** KEY_U, // d - u
 176:Src/PS2/PS2Keyboard.c **** KEY_I, // e - i
 177:Src/PS2/PS2Keyboard.c **** 0, // f
 178:Src/PS2/PS2Keyboard.c **** 0, // 10
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 11


 179:Src/PS2/PS2Keyboard.c **** 0, // 11
 180:Src/PS2/PS2Keyboard.c **** 0, // 12
 181:Src/PS2/PS2Keyboard.c **** 0, // 13
 182:Src/PS2/PS2Keyboard.c **** 0, // 14
 183:Src/PS2/PS2Keyboard.c **** 0, // 15 - FAX
 184:Src/PS2/PS2Keyboard.c **** KEY_LEFT, // 16 - CURSOR LEFT
 185:Src/PS2/PS2Keyboard.c **** 0, // 17
 186:Src/PS2/PS2Keyboard.c **** 0, // 18
 187:Src/PS2/PS2Keyboard.c **** 0, // 19
 188:Src/PS2/PS2Keyboard.c **** 0, // 1a - MOBILE
 189:Src/PS2/PS2Keyboard.c **** KEY_5, // 1b - 5
 190:Src/PS2/PS2Keyboard.c **** 0, // 1c - EMAIL
 191:Src/PS2/PS2Keyboard.c **** KEY_6, // 1d - 6
 192:Src/PS2/PS2Keyboard.c **** KEY_7, // 1e - 7
 193:Src/PS2/PS2Keyboard.c **** 0, // 1f
 194:Src/PS2/PS2Keyboard.c **** 0, // 20
 195:Src/PS2/PS2Keyboard.c **** KEY_Q, // 21 - q
 196:Src/PS2/PS2Keyboard.c **** KEY_4, // 22 - 4
 197:Src/PS2/PS2Keyboard.c **** KEY_W, // 23 - w
 198:Src/PS2/PS2Keyboard.c **** KEY_E, // 24 - e
 199:Src/PS2/PS2Keyboard.c **** 0, // 25
 200:Src/PS2/PS2Keyboard.c **** KEY_R, // 26 - r
 201:Src/PS2/PS2Keyboard.c **** 0, // 27
 202:Src/PS2/PS2Keyboard.c **** 0, // 28
 203:Src/PS2/PS2Keyboard.c **** KEY_G, // 29 - g
 204:Src/PS2/PS2Keyboard.c **** 0, // 2a - SMS
 205:Src/PS2/PS2Keyboard.c **** 0, // 2b
 206:Src/PS2/PS2Keyboard.c **** KEY_ENTER, // 2c - ENTER
 207:Src/PS2/PS2Keyboard.c **** 0, // 2d
 208:Src/PS2/PS2Keyboard.c **** KEY_DOWN, // 2e - CURSOR DOWN
 209:Src/PS2/PS2Keyboard.c **** 0, // 2f
 210:Src/PS2/PS2Keyboard.c **** 0, // 30
 211:Src/PS2/PS2Keyboard.c **** KEY_A, // 31 - a
 212:Src/PS2/PS2Keyboard.c **** KEY_O, // 32 - o
 213:Src/PS2/PS2Keyboard.c **** KEY_S, // 33 - s
 214:Src/PS2/PS2Keyboard.c **** KEY_P, // 34 - p
 215:Src/PS2/PS2Keyboard.c **** KEY_D, // 35 - d
 216:Src/PS2/PS2Keyboard.c **** KEY_F, // 36 - f
 217:Src/PS2/PS2Keyboard.c **** 0, // 37
 218:Src/PS2/PS2Keyboard.c **** 0, // 38
 219:Src/PS2/PS2Keyboard.c **** 0, // 39
 220:Src/PS2/PS2Keyboard.c **** KEY_L, // 3a - l
 221:Src/PS2/PS2Keyboard.c **** KEY_BACKSLASH, // 3b - \'
 222:Src/PS2/PS2Keyboard.c **** 0, // 3c - LSHIFT
 223:Src/PS2/PS2Keyboard.c **** KEY_Z, // 3d - z
 224:Src/PS2/PS2Keyboard.c **** KEY_UP, // 3e - CURSOR UP
 225:Src/PS2/PS2Keyboard.c **** 0, // 3f
 226:Src/PS2/PS2Keyboard.c **** 0, // 40
 227:Src/PS2/PS2Keyboard.c **** KEY_N, // 41 - n
 228:Src/PS2/PS2Keyboard.c **** KEY_M, // 42 - m
 229:Src/PS2/PS2Keyboard.c **** KEY_SLASH, // 43 - .?/
 230:Src/PS2/PS2Keyboard.c **** KEY_SEMICOLON, // 44 - ;:
 231:Src/PS2/PS2Keyboard.c **** 0, // 45
 232:Src/PS2/PS2Keyboard.c **** 0, // 46 - SERVICES
 233:Src/PS2/PS2Keyboard.c **** 0, // 47
 234:Src/PS2/PS2Keyboard.c **** 0, // 48
 235:Src/PS2/PS2Keyboard.c **** KEY_CAPSLOCK, // 49 - SYMBOL
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 12


 236:Src/PS2/PS2Keyboard.c **** 0, // 4a
 237:Src/PS2/PS2Keyboard.c **** KEY_SPACE, // 4b - SPACE
 238:Src/PS2/PS2Keyboard.c **** 0, // 4c
 239:Src/PS2/PS2Keyboard.c **** 0, // 4d
 240:Src/PS2/PS2Keyboard.c **** KEY_X, // 4e - x
 241:Src/PS2/PS2Keyboard.c **** 0, // 4f
 242:Src/PS2/PS2Keyboard.c **** 0, // 50
 243:Src/PS2/PS2Keyboard.c **** 0, // 51
 244:Src/PS2/PS2Keyboard.c **** KEY_T, // 52 - t
 245:Src/PS2/PS2Keyboard.c **** 0, // 53
 246:Src/PS2/PS2Keyboard.c **** KEY_C, // 54 - c
 247:Src/PS2/PS2Keyboard.c **** 0, // 55 - RIGHT SHIFT
 248:Src/PS2/PS2Keyboard.c **** 0, // 56
 249:Src/PS2/PS2Keyboard.c **** 0, // 57
 250:Src/PS2/PS2Keyboard.c **** 0, // 58
 251:Src/PS2/PS2Keyboard.c **** 0, // 59
 252:Src/PS2/PS2Keyboard.c **** 0, // 5a
 253:Src/PS2/PS2Keyboard.c **** KEY_H, // 5b - h
 254:Src/PS2/PS2Keyboard.c **** 0, // 5c
 255:Src/PS2/PS2Keyboard.c **** KEY_Y, // 5d - y
 256:Src/PS2/PS2Keyboard.c **** 0, // 5e
 257:Src/PS2/PS2Keyboard.c **** 0, // 5f
 258:Src/PS2/PS2Keyboard.c **** 0, // 60
 259:Src/PS2/PS2Keyboard.c **** 0, // 61
 260:Src/PS2/PS2Keyboard.c **** 0, // 62
 261:Src/PS2/PS2Keyboard.c **** 0, // 63
 262:Src/PS2/PS2Keyboard.c **** 0, // 64
 263:Src/PS2/PS2Keyboard.c **** 0, // 65
 264:Src/PS2/PS2Keyboard.c **** 0, // 66
 265:Src/PS2/PS2Keyboard.c **** 0, // 67
 266:Src/PS2/PS2Keyboard.c **** 0, // 68
 267:Src/PS2/PS2Keyboard.c **** 0, // 69 - OFFICE
 268:Src/PS2/PS2Keyboard.c **** 0, // 6a
 269:Src/PS2/PS2Keyboard.c **** KEY_3, // 6b - 3
 270:Src/PS2/PS2Keyboard.c **** KEY_BACKSPACE, // 6c - del
 271:Src/PS2/PS2Keyboard.c **** 0, // 6d
 272:Src/PS2/PS2Keyboard.c **** 0, // 6e
 273:Src/PS2/PS2Keyboard.c **** 0, // 6f
 274:Src/PS2/PS2Keyboard.c **** 0, // 70 - STORE
 275:Src/PS2/PS2Keyboard.c **** KEY_ESC, // 71 - Esc / STOP
 276:Src/PS2/PS2Keyboard.c **** 0, // 72 - HOME
 277:Src/PS2/PS2Keyboard.c **** KEY_2, // 73 - 2
 278:Src/PS2/PS2Keyboard.c **** KEY_1, // 74 - 1
 279:Src/PS2/PS2Keyboard.c **** KEY_0, // 75 - 0
 280:Src/PS2/PS2Keyboard.c **** KEY_K, // 76 - k
 281:Src/PS2/PS2Keyboard.c **** 0, // 77 - INTERNET
 282:Src/PS2/PS2Keyboard.c **** 0, // 78
 283:Src/PS2/PS2Keyboard.c **** KEY_8, // 79 - 8
 284:Src/PS2/PS2Keyboard.c **** 0, // 7a - SETUP
 285:Src/PS2/PS2Keyboard.c **** 0, // 7b
 286:Src/PS2/PS2Keyboard.c **** 0, // 7c - GAMES
 287:Src/PS2/PS2Keyboard.c **** KEY_9, // 7d - 9
 288:Src/PS2/PS2Keyboard.c **** 0, // 7e
 289:Src/PS2/PS2Keyboard.c **** 0, // 7f
 290:Src/PS2/PS2Keyboard.c **** 0, // 80
 291:Src/PS2/PS2Keyboard.c **** 0, // 81
 292:Src/PS2/PS2Keyboard.c **** 0, // 82
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 13


 293:Src/PS2/PS2Keyboard.c **** KEY_SYSRQ, // 83 - PRINT
 294:Src/PS2/PS2Keyboard.c **** 0
 295:Src/PS2/PS2Keyboard.c **** };
 296:Src/PS2/PS2Keyboard.c **** 
 297:Src/PS2/PS2Keyboard.c **** 
 298:Src/PS2/PS2Keyboard.c **** 
 299:Src/PS2/PS2Keyboard.c **** unsigned char scan_decode(unsigned char i)
 300:Src/PS2/PS2Keyboard.c **** {
 161              		.loc 2 300 0
 162              		.cfi_startproc
 163              		@ args = 0, pretend = 0, frame = 0
 164              		@ frame_needed = 0, uses_anonymous_args = 0
 165              		@ link register save eliminated.
 166              	.LVL6:
 301:Src/PS2/PS2Keyboard.c **** // return amstrad2ascii[i];
 302:Src/PS2/PS2Keyboard.c ****  return amstrad2hid[i];
 303:Src/PS2/PS2Keyboard.c **** }
 167              		.loc 2 303 0
 168 0000 014B     		ldr	r3, .L6
 169 0002 185C     		ldrb	r0, [r3, r0]	@ zero_extendqisi2
 170              	.LVL7:
 171 0004 7047     		bx	lr
 172              	.L7:
 173 0006 00BF     		.align	2
 174              	.L6:
 175 0008 00000000 		.word	.LANCHOR0
 176              		.cfi_endproc
 177              	.LFE68:
 179              		.section	.text.ps2interrupt,"ax",%progbits
 180              		.align	1
 181              		.global	ps2interrupt
 182              		.syntax unified
 183              		.thumb
 184              		.thumb_func
 185              		.fpu softvfp
 187              	ps2interrupt:
 188              	.LFB69:
 304:Src/PS2/PS2Keyboard.c **** 
 305:Src/PS2/PS2Keyboard.c **** 
 306:Src/PS2/PS2Keyboard.c **** void ps2interrupt(unsigned char val)
 307:Src/PS2/PS2Keyboard.c **** {
 189              		.loc 2 307 0
 190              		.cfi_startproc
 191              		@ args = 0, pretend = 0, frame = 0
 192              		@ frame_needed = 0, uses_anonymous_args = 0
 193              	.LVL8:
 194 0000 10B5     		push	{r4, lr}
 195              	.LCFI3:
 196              		.cfi_def_cfa_offset 8
 197              		.cfi_offset 4, -8
 198              		.cfi_offset 14, -4
 199 0002 0446     		mov	r4, r0
 308:Src/PS2/PS2Keyboard.c **** uint32_t now_ms;
 309:Src/PS2/PS2Keyboard.c **** static uint8_t bitcount=0;
 310:Src/PS2/PS2Keyboard.c **** static uint8_t incoming=0;
 311:Src/PS2/PS2Keyboard.c **** static uint32_t prev_ms=0;
 312:Src/PS2/PS2Keyboard.c **** static uint8_t parity;
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 14


 313:Src/PS2/PS2Keyboard.c **** //uint8_t n;
 314:Src/PS2/PS2Keyboard.c **** 
 315:Src/PS2/PS2Keyboard.c **** 
 316:Src/PS2/PS2Keyboard.c **** 
 317:Src/PS2/PS2Keyboard.c **** 
 318:Src/PS2/PS2Keyboard.c **** now_ms = HAL_GetTick();
 200              		.loc 2 318 0
 201 0004 FFF7FEFF 		bl	HAL_GetTick
 202              	.LVL9:
 319:Src/PS2/PS2Keyboard.c **** 	if (now_ms - prev_ms > 250) {
 203              		.loc 2 319 0
 204 0008 2B4B     		ldr	r3, .L23
 205 000a 1B68     		ldr	r3, [r3]
 206 000c C31A     		subs	r3, r0, r3
 207 000e FA2B     		cmp	r3, #250
 208 0010 04D9     		bls	.L9
 320:Src/PS2/PS2Keyboard.c **** 		bitcount = 0;
 209              		.loc 2 320 0
 210 0012 0023     		movs	r3, #0
 211 0014 294A     		ldr	r2, .L23+4
 212 0016 1370     		strb	r3, [r2]
 321:Src/PS2/PS2Keyboard.c **** 		incoming = 0;
 213              		.loc 2 321 0
 214 0018 294A     		ldr	r2, .L23+8
 215 001a 1370     		strb	r3, [r2]
 216              	.L9:
 322:Src/PS2/PS2Keyboard.c **** 	}
 323:Src/PS2/PS2Keyboard.c **** 
 324:Src/PS2/PS2Keyboard.c **** 	prev_ms = now_ms;
 217              		.loc 2 324 0
 218 001c 264B     		ldr	r3, .L23
 219 001e 1860     		str	r0, [r3]
 325:Src/PS2/PS2Keyboard.c **** 
 326:Src/PS2/PS2Keyboard.c **** 
 327:Src/PS2/PS2Keyboard.c **** 
 328:Src/PS2/PS2Keyboard.c **** 
 329:Src/PS2/PS2Keyboard.c **** bitcount++;         // Now point to next bit
 220              		.loc 2 329 0
 221 0020 264A     		ldr	r2, .L23+4
 222 0022 1378     		ldrb	r3, [r2]	@ zero_extendqisi2
 223 0024 0133     		adds	r3, r3, #1
 224 0026 DBB2     		uxtb	r3, r3
 225 0028 1370     		strb	r3, [r2]
 330:Src/PS2/PS2Keyboard.c ****     switch( bitcount )
 226              		.loc 2 330 0
 227 002a 013B     		subs	r3, r3, #1
 228 002c 0A2B     		cmp	r3, #10
 229 002e 3ED8     		bhi	.L10
 230 0030 DFE803F0 		tbb	[pc, r3]
 231              	.L12:
 232 0034 06       		.byte	(.L11-.L12)/2
 233 0035 0C       		.byte	(.L13-.L12)/2
 234 0036 0C       		.byte	(.L13-.L12)/2
 235 0037 0C       		.byte	(.L13-.L12)/2
 236 0038 0C       		.byte	(.L13-.L12)/2
 237 0039 0C       		.byte	(.L13-.L12)/2
 238 003a 0C       		.byte	(.L13-.L12)/2
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 15


 239 003b 0C       		.byte	(.L13-.L12)/2
 240 003c 0C       		.byte	(.L13-.L12)/2
 241 003d 1C       		.byte	(.L14-.L12)/2
 242 003e 27       		.byte	(.L15-.L12)/2
 243 003f 00       		.p2align 1
 244              	.L11:
 331:Src/PS2/PS2Keyboard.c ****        {
 332:Src/PS2/PS2Keyboard.c ****        case 1:  // Start bit
 333:Src/PS2/PS2Keyboard.c ****                 incoming = 0;
 245              		.loc 2 333 0
 246 0040 0023     		movs	r3, #0
 247 0042 1F4A     		ldr	r2, .L23+8
 248 0044 1370     		strb	r3, [r2]
 334:Src/PS2/PS2Keyboard.c ****                 parity = 0;
 249              		.loc 2 334 0
 250 0046 1F4A     		ldr	r2, .L23+12
 251 0048 1370     		strb	r3, [r2]
 335:Src/PS2/PS2Keyboard.c ****                 break;
 252              		.loc 2 335 0
 253 004a 33E0     		b	.L8
 254              	.L13:
 336:Src/PS2/PS2Keyboard.c ****        case 2:
 337:Src/PS2/PS2Keyboard.c ****        case 3:
 338:Src/PS2/PS2Keyboard.c ****        case 4:
 339:Src/PS2/PS2Keyboard.c ****        case 5:
 340:Src/PS2/PS2Keyboard.c ****        case 6:
 341:Src/PS2/PS2Keyboard.c ****        case 7:
 342:Src/PS2/PS2Keyboard.c ****        case 8:
 343:Src/PS2/PS2Keyboard.c ****        case 9:  // Data bits
 344:Src/PS2/PS2Keyboard.c ****                 parity += val;        // another one received ?
 255              		.loc 2 344 0
 256 004c 1D4A     		ldr	r2, .L23+12
 257 004e 1378     		ldrb	r3, [r2]	@ zero_extendqisi2
 258 0050 2344     		add	r3, r3, r4
 259 0052 1370     		strb	r3, [r2]
 345:Src/PS2/PS2Keyboard.c ****                 incoming >>= 1;       // right shift one place for next bit
 260              		.loc 2 345 0
 261 0054 1A4B     		ldr	r3, .L23+8
 262 0056 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 263 0058 5A08     		lsrs	r2, r3, #1
 346:Src/PS2/PS2Keyboard.c ****                 incoming |= ( val ) ? 0x80 : 0;    // or in MSbit
 264              		.loc 2 346 0
 265 005a 24B9     		cbnz	r4, .L22
 266 005c 0023     		movs	r3, #0
 267              	.L17:
 268              		.loc 2 346 0 is_stmt 0 discriminator 4
 269 005e 1343     		orrs	r3, r3, r2
 270 0060 174A     		ldr	r2, .L23+8
 271 0062 1370     		strb	r3, [r2]
 347:Src/PS2/PS2Keyboard.c ****                 break;
 272              		.loc 2 347 0 is_stmt 1 discriminator 4
 273 0064 26E0     		b	.L8
 274              	.L22:
 346:Src/PS2/PS2Keyboard.c ****                 incoming |= ( val ) ? 0x80 : 0;    // or in MSbit
 275              		.loc 2 346 0
 276 0066 6FF07F03 		mvn	r3, #127
 277 006a F8E7     		b	.L17
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 16


 278              	.L14:
 348:Src/PS2/PS2Keyboard.c ****        case 10: // Parity check
 349:Src/PS2/PS2Keyboard.c ****                 parity &= 1;          // Get LSB if 1 = odd number of 1's so parity should be 0
 279              		.loc 2 349 0
 280 006c 154A     		ldr	r2, .L23+12
 281 006e 1378     		ldrb	r3, [r2]	@ zero_extendqisi2
 282 0070 03F00103 		and	r3, r3, #1
 283 0074 1370     		strb	r3, [r2]
 350:Src/PS2/PS2Keyboard.c ****                 if( parity == val )   // Both same parity error
 284              		.loc 2 350 0
 285 0076 A342     		cmp	r3, r4
 286 0078 1CD1     		bne	.L8
 351:Src/PS2/PS2Keyboard.c ****                   parity = 0xFD;      // To ensure at next bit count clear and discard
 287              		.loc 2 351 0
 288 007a 1346     		mov	r3, r2
 289 007c FD22     		movs	r2, #253
 290 007e 1A70     		strb	r2, [r3]
 291 0080 18E0     		b	.L8
 292              	.L15:
 352:Src/PS2/PS2Keyboard.c ****                 break;
 353:Src/PS2/PS2Keyboard.c ****        case 11: // Stop bit
 354:Src/PS2/PS2Keyboard.c ****                 if( parity >= 0xFD )  // had parity error
 293              		.loc 2 354 0
 294 0082 104B     		ldr	r3, .L23+12
 295 0084 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 296 0086 FC2B     		cmp	r3, #252
 297 0088 11D8     		bhi	.L10
 355:Src/PS2/PS2Keyboard.c ****                   {
 356:Src/PS2/PS2Keyboard.c ****                   // Should send resend byte command here currently discard
 357:Src/PS2/PS2Keyboard.c ****                   }
 358:Src/PS2/PS2Keyboard.c ****                 else                  // Good so save byte in buffer
 359:Src/PS2/PS2Keyboard.c ****                   {
 360:Src/PS2/PS2Keyboard.c ****                   val = head + 1;
 298              		.loc 2 360 0
 299 008a 0F4B     		ldr	r3, .L23+16
 300 008c 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 301 008e 0133     		adds	r3, r3, #1
 302 0090 DBB2     		uxtb	r3, r3
 303              	.LVL10:
 361:Src/PS2/PS2Keyboard.c ****                   if( val >= PS2BUFFER_SIZE )
 304              		.loc 2 361 0
 305 0092 0F2B     		cmp	r3, #15
 306 0094 00D9     		bls	.L18
 362:Src/PS2/PS2Keyboard.c ****                     val = 0;
 307              		.loc 2 362 0
 308 0096 0023     		movs	r3, #0
 309              	.LVL11:
 310              	.L18:
 363:Src/PS2/PS2Keyboard.c ****                   if( val != tail )
 311              		.loc 2 363 0
 312 0098 0C4A     		ldr	r2, .L23+20
 313 009a 1278     		ldrb	r2, [r2]	@ zero_extendqisi2
 314 009c D2B2     		uxtb	r2, r2
 315 009e 9A42     		cmp	r2, r3
 316 00a0 05D0     		beq	.L10
 364:Src/PS2/PS2Keyboard.c ****                     {
 365:Src/PS2/PS2Keyboard.c ****                     PS2buffer[ val ] = incoming;
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 17


 317              		.loc 2 365 0
 318 00a2 074A     		ldr	r2, .L23+8
 319 00a4 1178     		ldrb	r1, [r2]	@ zero_extendqisi2
 320 00a6 0A4A     		ldr	r2, .L23+24
 321 00a8 D154     		strb	r1, [r2, r3]
 366:Src/PS2/PS2Keyboard.c ****                     head = val;
 322              		.loc 2 366 0
 323 00aa 074A     		ldr	r2, .L23+16
 324 00ac 1370     		strb	r3, [r2]
 325              	.LVL12:
 326              	.L10:
 367:Src/PS2/PS2Keyboard.c ****                     }
 368:Src/PS2/PS2Keyboard.c ****                   }
 369:Src/PS2/PS2Keyboard.c ****                 // fall through to default
 370:Src/PS2/PS2Keyboard.c ****        default: // in case of weird error and end of byte reception re-sync
 371:Src/PS2/PS2Keyboard.c ****                 bitcount = 0;
 327              		.loc 2 371 0
 328 00ae 034B     		ldr	r3, .L23+4
 329 00b0 0022     		movs	r2, #0
 330 00b2 1A70     		strb	r2, [r3]
 331              	.L8:
 372:Src/PS2/PS2Keyboard.c ****       }
 373:Src/PS2/PS2Keyboard.c **** 
 374:Src/PS2/PS2Keyboard.c **** 
 375:Src/PS2/PS2Keyboard.c **** 
 376:Src/PS2/PS2Keyboard.c **** 
 377:Src/PS2/PS2Keyboard.c **** 
 378:Src/PS2/PS2Keyboard.c **** 
 379:Src/PS2/PS2Keyboard.c **** 
 380:Src/PS2/PS2Keyboard.c **** 
 381:Src/PS2/PS2Keyboard.c **** 
 382:Src/PS2/PS2Keyboard.c **** 
 383:Src/PS2/PS2Keyboard.c **** 
 384:Src/PS2/PS2Keyboard.c **** 
 385:Src/PS2/PS2Keyboard.c **** 
 386:Src/PS2/PS2Keyboard.c **** 
 387:Src/PS2/PS2Keyboard.c **** 
 388:Src/PS2/PS2Keyboard.c **** 
 389:Src/PS2/PS2Keyboard.c **** 
 390:Src/PS2/PS2Keyboard.c **** 
 391:Src/PS2/PS2Keyboard.c **** 
 392:Src/PS2/PS2Keyboard.c **** 
 393:Src/PS2/PS2Keyboard.c **** 
 394:Src/PS2/PS2Keyboard.c **** 
 395:Src/PS2/PS2Keyboard.c **** 
 396:Src/PS2/PS2Keyboard.c **** 
 397:Src/PS2/PS2Keyboard.c **** 
 398:Src/PS2/PS2Keyboard.c **** /* CIA KITAS VARIANTAS, irgi veikia.... */
 399:Src/PS2/PS2Keyboard.c **** 	
 400:Src/PS2/PS2Keyboard.c **** /*	
 401:Src/PS2/PS2Keyboard.c **** 	n = bitcount - 1;
 402:Src/PS2/PS2Keyboard.c **** 	if (n <= 7) {incoming |= (val << n);}
 403:Src/PS2/PS2Keyboard.c **** 	bitcount++;
 404:Src/PS2/PS2Keyboard.c **** 	if (bitcount == 11) {
 405:Src/PS2/PS2Keyboard.c **** 		uint8_t i = head + 1;
 406:Src/PS2/PS2Keyboard.c **** 		if (i >= PS2BUFFER_SIZE) i = 0;
 407:Src/PS2/PS2Keyboard.c **** 		if (i != tail) {PS2buffer[i] = incoming; head = i;}
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 18


 408:Src/PS2/PS2Keyboard.c **** 		bitcount = 0;
 409:Src/PS2/PS2Keyboard.c **** 		incoming = 0;
 410:Src/PS2/PS2Keyboard.c **** 	}
 411:Src/PS2/PS2Keyboard.c **** */	
 412:Src/PS2/PS2Keyboard.c **** }
 332              		.loc 2 412 0
 333 00b4 10BD     		pop	{r4, pc}
 334              	.L24:
 335 00b6 00BF     		.align	2
 336              	.L23:
 337 00b8 00000000 		.word	.LANCHOR1
 338 00bc 00000000 		.word	.LANCHOR2
 339 00c0 00000000 		.word	.LANCHOR3
 340 00c4 00000000 		.word	.LANCHOR4
 341 00c8 00000000 		.word	.LANCHOR5
 342 00cc 00000000 		.word	.LANCHOR6
 343 00d0 00000000 		.word	.LANCHOR7
 344              		.cfi_endproc
 345              	.LFE69:
 347              		.section	.text.get_PS2scan_code,"ax",%progbits
 348              		.align	1
 349              		.global	get_PS2scan_code
 350              		.syntax unified
 351              		.thumb
 352              		.thumb_func
 353              		.fpu softvfp
 355              	get_PS2scan_code:
 356              	.LFB70:
 413:Src/PS2/PS2Keyboard.c **** 
 414:Src/PS2/PS2Keyboard.c **** uint8_t get_PS2scan_code(void)
 415:Src/PS2/PS2Keyboard.c **** {
 357              		.loc 2 415 0
 358              		.cfi_startproc
 359              		@ args = 0, pretend = 0, frame = 0
 360              		@ frame_needed = 0, uses_anonymous_args = 0
 361              		@ link register save eliminated.
 416:Src/PS2/PS2Keyboard.c **** 	uint8_t c, i;
 417:Src/PS2/PS2Keyboard.c **** 
 418:Src/PS2/PS2Keyboard.c **** 	i = tail;
 362              		.loc 2 418 0
 363 0000 0A4B     		ldr	r3, .L30
 364 0002 1B78     		ldrb	r3, [r3]	@ zero_extendqisi2
 365 0004 DBB2     		uxtb	r3, r3
 366              	.LVL13:
 419:Src/PS2/PS2Keyboard.c **** 	if (i == head) return 0;
 367              		.loc 2 419 0
 368 0006 0A4A     		ldr	r2, .L30+4
 369 0008 1278     		ldrb	r2, [r2]	@ zero_extendqisi2
 370 000a D2B2     		uxtb	r2, r2
 371 000c 9A42     		cmp	r2, r3
 372 000e 0AD0     		beq	.L28
 420:Src/PS2/PS2Keyboard.c **** 	i++;
 373              		.loc 2 420 0
 374 0010 0133     		adds	r3, r3, #1
 375              	.LVL14:
 376 0012 DBB2     		uxtb	r3, r3
 377              	.LVL15:
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 19


 421:Src/PS2/PS2Keyboard.c **** 	if (i >= PS2BUFFER_SIZE) i = 0;
 378              		.loc 2 421 0
 379 0014 0F2B     		cmp	r3, #15
 380 0016 00D9     		bls	.L27
 381 0018 0023     		movs	r3, #0
 382              	.LVL16:
 383              	.L27:
 422:Src/PS2/PS2Keyboard.c **** 	c = PS2buffer[i];
 384              		.loc 2 422 0
 385 001a 064A     		ldr	r2, .L30+8
 386 001c D05C     		ldrb	r0, [r2, r3]	@ zero_extendqisi2
 387 001e C0B2     		uxtb	r0, r0
 388              	.LVL17:
 423:Src/PS2/PS2Keyboard.c **** 	tail = i;
 389              		.loc 2 423 0
 390 0020 024A     		ldr	r2, .L30
 391 0022 1370     		strb	r3, [r2]
 424:Src/PS2/PS2Keyboard.c **** 	return c;
 392              		.loc 2 424 0
 393 0024 7047     		bx	lr
 394              	.LVL18:
 395              	.L28:
 419:Src/PS2/PS2Keyboard.c **** 	i++;
 396              		.loc 2 419 0
 397 0026 0020     		movs	r0, #0
 425:Src/PS2/PS2Keyboard.c **** }
 398              		.loc 2 425 0
 399 0028 7047     		bx	lr
 400              	.L31:
 401 002a 00BF     		.align	2
 402              	.L30:
 403 002c 00000000 		.word	.LANCHOR6
 404 0030 00000000 		.word	.LANCHOR5
 405 0034 00000000 		.word	.LANCHOR7
 406              		.cfi_endproc
 407              	.LFE70:
 409              		.section	.text.SystemClock_Config,"ax",%progbits
 410              		.align	1
 411              		.global	SystemClock_Config
 412              		.syntax unified
 413              		.thumb
 414              		.thumb_func
 415              		.fpu softvfp
 417              	SystemClock_Config:
 418              	.LFB72:
 156:Src/main.c    ****   RCC_OscInitTypeDef RCC_OscInitStruct = {0};
 419              		.loc 1 156 0
 420              		.cfi_startproc
 421              		@ args = 0, pretend = 0, frame = 80
 422              		@ frame_needed = 0, uses_anonymous_args = 0
 423 0000 70B5     		push	{r4, r5, r6, lr}
 424              	.LCFI4:
 425              		.cfi_def_cfa_offset 16
 426              		.cfi_offset 4, -16
 427              		.cfi_offset 5, -12
 428              		.cfi_offset 6, -8
 429              		.cfi_offset 14, -4
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 20


 430 0002 94B0     		sub	sp, sp, #80
 431              	.LCFI5:
 432              		.cfi_def_cfa_offset 96
 157:Src/main.c    ****   RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
 433              		.loc 1 157 0
 434 0004 0024     		movs	r4, #0
 435 0006 0C94     		str	r4, [sp, #48]
 436 0008 0D94     		str	r4, [sp, #52]
 437 000a 0F94     		str	r4, [sp, #60]
 438 000c 1094     		str	r4, [sp, #64]
 158:Src/main.c    ****   RCC_PeriphCLKInitTypeDef PeriphClkInit = {0};
 439              		.loc 1 158 0
 440 000e 0594     		str	r4, [sp, #20]
 441 0010 0694     		str	r4, [sp, #24]
 442 0012 0794     		str	r4, [sp, #28]
 443 0014 0894     		str	r4, [sp, #32]
 444 0016 0994     		str	r4, [sp, #36]
 159:Src/main.c    **** 
 445              		.loc 1 159 0
 446 0018 0194     		str	r4, [sp, #4]
 447 001a 0294     		str	r4, [sp, #8]
 448 001c 0394     		str	r4, [sp, #12]
 449 001e 0494     		str	r4, [sp, #16]
 163:Src/main.c    ****   RCC_OscInitStruct.HSEState = RCC_HSE_ON;
 450              		.loc 1 163 0
 451 0020 0125     		movs	r5, #1
 452 0022 0A95     		str	r5, [sp, #40]
 164:Src/main.c    ****   RCC_OscInitStruct.HSEPredivValue = RCC_HSE_PREDIV_DIV1;
 453              		.loc 1 164 0
 454 0024 4FF48033 		mov	r3, #65536
 455 0028 0B93     		str	r3, [sp, #44]
 166:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
 456              		.loc 1 166 0
 457 002a 0E95     		str	r5, [sp, #56]
 167:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
 458              		.loc 1 167 0
 459 002c 0226     		movs	r6, #2
 460 002e 1196     		str	r6, [sp, #68]
 168:Src/main.c    ****   RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL6;
 461              		.loc 1 168 0
 462 0030 1293     		str	r3, [sp, #72]
 169:Src/main.c    ****   if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
 463              		.loc 1 169 0
 464 0032 4FF48013 		mov	r3, #1048576
 465 0036 1393     		str	r3, [sp, #76]
 170:Src/main.c    ****   {
 466              		.loc 1 170 0
 467 0038 0AA8     		add	r0, sp, #40
 468 003a FFF7FEFF 		bl	HAL_RCC_OscConfig
 469              	.LVL19:
 176:Src/main.c    ****                               |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
 470              		.loc 1 176 0
 471 003e 0F23     		movs	r3, #15
 472 0040 0593     		str	r3, [sp, #20]
 178:Src/main.c    ****   RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
 473              		.loc 1 178 0
 474 0042 0696     		str	r6, [sp, #24]
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 21


 179:Src/main.c    ****   RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
 475              		.loc 1 179 0
 476 0044 0794     		str	r4, [sp, #28]
 180:Src/main.c    ****   RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
 477              		.loc 1 180 0
 478 0046 4FF48063 		mov	r3, #1024
 479 004a 0893     		str	r3, [sp, #32]
 181:Src/main.c    **** 
 480              		.loc 1 181 0
 481 004c 0994     		str	r4, [sp, #36]
 183:Src/main.c    ****   {
 482              		.loc 1 183 0
 483 004e 2946     		mov	r1, r5
 484 0050 05A8     		add	r0, sp, #20
 485 0052 FFF7FEFF 		bl	HAL_RCC_ClockConfig
 486              	.LVL20:
 187:Src/main.c    ****   PeriphClkInit.UsbClockSelection = RCC_USBCLKSOURCE_PLL;
 487              		.loc 1 187 0
 488 0056 1023     		movs	r3, #16
 489 0058 0193     		str	r3, [sp, #4]
 188:Src/main.c    ****   if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInit) != HAL_OK)
 490              		.loc 1 188 0
 491 005a 4FF48003 		mov	r3, #4194304
 492 005e 0493     		str	r3, [sp, #16]
 189:Src/main.c    ****   {
 493              		.loc 1 189 0
 494 0060 01A8     		add	r0, sp, #4
 495 0062 FFF7FEFF 		bl	HAL_RCCEx_PeriphCLKConfig
 496              	.LVL21:
 193:Src/main.c    **** 
 497              		.loc 1 193 0
 498 0066 14B0     		add	sp, sp, #80
 499              	.LCFI6:
 500              		.cfi_def_cfa_offset 16
 501              		@ sp needed
 502 0068 70BD     		pop	{r4, r5, r6, pc}
 503              		.cfi_endproc
 504              	.LFE72:
 506              		.section	.text.main,"ax",%progbits
 507              		.align	1
 508              		.global	main
 509              		.syntax unified
 510              		.thumb
 511              		.thumb_func
 512              		.fpu softvfp
 514              	main:
 515              	.LFB71:
  69:Src/main.c    ****   /* USER CODE BEGIN 1 */
 516              		.loc 1 69 0
 517              		.cfi_startproc
 518              		@ args = 0, pretend = 0, frame = 8
 519              		@ frame_needed = 0, uses_anonymous_args = 0
 520 0000 30B5     		push	{r4, r5, lr}
 521              	.LCFI7:
 522              		.cfi_def_cfa_offset 12
 523              		.cfi_offset 4, -12
 524              		.cfi_offset 5, -8
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 22


 525              		.cfi_offset 14, -4
 526 0002 83B0     		sub	sp, sp, #12
 527              	.LCFI8:
 528              		.cfi_def_cfa_offset 24
  82:Src/main.c    ****   mouseHID.x = 0;
 529              		.loc 1 82 0
 530 0004 0023     		movs	r3, #0
 531 0006 8DF80030 		strb	r3, [sp]
  83:Src/main.c    ****   mouseHID.y = 0;
 532              		.loc 1 83 0
 533 000a 8DF80130 		strb	r3, [sp, #1]
  84:Src/main.c    ****   mouseHID.wheel = 0;
 534              		.loc 1 84 0
 535 000e 8DF80230 		strb	r3, [sp, #2]
  85:Src/main.c    ****   mouseHID.wakeup = 0;
 536              		.loc 1 85 0
 537 0012 8DF80330 		strb	r3, [sp, #3]
  86:Src/main.c    **** 
 538              		.loc 1 86 0
 539 0016 8DF80430 		strb	r3, [sp, #4]
 100:Src/main.c    **** 
 540              		.loc 1 100 0
 541 001a FFF7FEFF 		bl	HAL_Init
 542              	.LVL22:
 107:Src/main.c    **** 
 543              		.loc 1 107 0
 544 001e FFF7FEFF 		bl	SystemClock_Config
 545              	.LVL23:
 114:Src/main.c    ****   MX_USB_DEVICE_Init();
 546              		.loc 1 114 0
 547 0022 FFF7FEFF 		bl	MX_GPIO_Init
 548              	.LVL24:
 115:Src/main.c    ****   /* USER CODE BEGIN 2 */
 549              		.loc 1 115 0
 550 0026 FFF7FEFF 		bl	MX_USB_DEVICE_Init
 551              	.LVL25:
 552 002a 0DE0     		b	.L44
 553              	.LVL26:
 554              	.L37:
 555              	.LBB5:
 125:Src/main.c    **** 		{
 556              		.loc 1 125 0
 557 002c 4B28     		cmp	r0, #75
 558 002e 20D0     		beq	.L41
 559 0030 F028     		cmp	r0, #240
 560 0032 26D0     		beq	.L42
 561 0034 3E28     		cmp	r0, #62
 562 0036 06D1     		bne	.L35
 129:Src/main.c    **** 		case 0x2e: mouseHID.y = 10; break;// apacia
 563              		.loc 1 129 0
 564 0038 F623     		movs	r3, #246
 565 003a 8DF80230 		strb	r3, [sp, #2]
 566 003e 02E0     		b	.L35
 567              	.L48:
 127:Src/main.c    **** 		case 0x16: mouseHID.x = -10; break;// kaire		
 568              		.loc 1 127 0
 569 0040 0A23     		movs	r3, #10
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 23


 570 0042 8DF80130 		strb	r3, [sp, #1]
 571              	.LVL27:
 572              	.L35:
 135:Src/main.c    **** 		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_RESET);
 573              		.loc 1 135 0
 574 0046 0CBB     		cbnz	r4, .L47
 575              	.L44:
 124:Src/main.c    **** 	switch(c)
 576              		.loc 1 124 0
 577 0048 FFF7FEFF 		bl	get_PS2scan_code
 578              	.LVL28:
 579 004c 0446     		mov	r4, r0
 580              	.LVL29:
 125:Src/main.c    **** 		{
 581              		.loc 1 125 0
 582 004e 2E28     		cmp	r0, #46
 583 0050 0BD0     		beq	.L36
 584 0052 EBD8     		bhi	.L37
 585 0054 1628     		cmp	r0, #22
 586 0056 04D0     		beq	.L38
 587 0058 2C28     		cmp	r0, #44
 588 005a 0ED0     		beq	.L39
 589 005c 0928     		cmp	r0, #9
 590 005e F2D1     		bne	.L35
 591 0060 EEE7     		b	.L48
 592              	.L38:
 128:Src/main.c    **** 		case 0x3e: mouseHID.y = -10; break;// virsus
 593              		.loc 1 128 0
 594 0062 F623     		movs	r3, #246
 595 0064 8DF80130 		strb	r3, [sp, #1]
 596 0068 EDE7     		b	.L35
 597              	.L36:
 130:Src/main.c    **** 		case 0x4b: mouseHID.buttons = 1; break;// mygtukas kaireje
 598              		.loc 1 130 0
 599 006a 0A23     		movs	r3, #10
 600 006c 8DF80230 		strb	r3, [sp, #2]
 601 0070 E9E7     		b	.L35
 602              	.L41:
 131:Src/main.c    **** 		case 0x2c: mouseHID.buttons = 2; break;// mygtukas desineje
 603              		.loc 1 131 0
 604 0072 0123     		movs	r3, #1
 605 0074 8DF80030 		strb	r3, [sp]
 606 0078 E5E7     		b	.L35
 607              	.L39:
 132:Src/main.c    **** 		case 0xf0: while(get_PS2scan_code()){}; break; // klaviso atspaudimas
 608              		.loc 1 132 0
 609 007a 0223     		movs	r3, #2
 610 007c 8DF80030 		strb	r3, [sp]
 611 0080 E1E7     		b	.L35
 612              	.LVL30:
 613              	.L42:
 133:Src/main.c    **** 		}
 614              		.loc 1 133 0 discriminator 2
 615 0082 FFF7FEFF 		bl	get_PS2scan_code
 616              	.LVL31:
 617 0086 0028     		cmp	r0, #0
 618 0088 FBD1     		bne	.L42
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 24


 619 008a DCE7     		b	.L35
 620              	.L47:
 136:Src/main.c    **** 		USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&mouseHID, sizeof(struct mouseHID_t));
 621              		.loc 1 136 0
 622 008c 114C     		ldr	r4, .L49
 623 008e 0022     		movs	r2, #0
 624 0090 4FF40051 		mov	r1, #8192
 625 0094 2046     		mov	r0, r4
 626 0096 FFF7FEFF 		bl	HAL_GPIO_WritePin
 627              	.LVL32:
 137:Src/main.c    **** 			HAL_Delay(10 ); // rodos ne dazniau nei 10ms??
 628              		.loc 1 137 0
 629 009a 0F4D     		ldr	r5, .L49+4
 630 009c 0522     		movs	r2, #5
 631 009e 6946     		mov	r1, sp
 632 00a0 2846     		mov	r0, r5
 633 00a2 FFF7FEFF 		bl	USBD_HID_SendReport
 634              	.LVL33:
 138:Src/main.c    **** 			mouseHID.buttons = 0;
 635              		.loc 1 138 0
 636 00a6 0A20     		movs	r0, #10
 637 00a8 FFF7FEFF 		bl	HAL_Delay
 638              	.LVL34:
 139:Src/main.c    **** 			mouseHID.x = 0;
 639              		.loc 1 139 0
 640 00ac 0023     		movs	r3, #0
 641 00ae 8DF80030 		strb	r3, [sp]
 140:Src/main.c    **** 			mouseHID.y = 0;
 642              		.loc 1 140 0
 643 00b2 8DF80130 		strb	r3, [sp, #1]
 141:Src/main.c    **** 		USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&mouseHID, sizeof(struct mouseHID_t));
 644              		.loc 1 141 0
 645 00b6 8DF80230 		strb	r3, [sp, #2]
 142:Src/main.c    **** 		HAL_GPIO_WritePin(LED_GPIO_Port, LED_Pin, GPIO_PIN_SET);
 646              		.loc 1 142 0
 647 00ba 0522     		movs	r2, #5
 648 00bc 6946     		mov	r1, sp
 649 00be 2846     		mov	r0, r5
 650 00c0 FFF7FEFF 		bl	USBD_HID_SendReport
 651              	.LVL35:
 143:Src/main.c    **** 		}
 652              		.loc 1 143 0
 653 00c4 0122     		movs	r2, #1
 654 00c6 4FF40051 		mov	r1, #8192
 655 00ca 2046     		mov	r0, r4
 656 00cc FFF7FEFF 		bl	HAL_GPIO_WritePin
 657              	.LVL36:
 658 00d0 BAE7     		b	.L44
 659              	.L50:
 660 00d2 00BF     		.align	2
 661              	.L49:
 662 00d4 00100140 		.word	1073811456
 663 00d8 00000000 		.word	hUsbDeviceFS
 664              	.LBE5:
 665              		.cfi_endproc
 666              	.LFE71:
 668              		.section	.text.Error_Handler,"ax",%progbits
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 25


 669              		.align	1
 670              		.global	Error_Handler
 671              		.syntax unified
 672              		.thumb
 673              		.thumb_func
 674              		.fpu softvfp
 676              	Error_Handler:
 677              	.LFB74:
 236:Src/main.c    **** 
 237:Src/main.c    **** /* USER CODE BEGIN 4 */
 238:Src/main.c    **** 
 239:Src/main.c    **** /* USER CODE END 4 */
 240:Src/main.c    **** 
 241:Src/main.c    **** /**
 242:Src/main.c    ****   * @brief  This function is executed in case of error occurrence.
 243:Src/main.c    ****   * @retval None
 244:Src/main.c    ****   */
 245:Src/main.c    **** void Error_Handler(void)
 246:Src/main.c    **** {
 678              		.loc 1 246 0
 679              		.cfi_startproc
 680              		@ args = 0, pretend = 0, frame = 0
 681              		@ frame_needed = 0, uses_anonymous_args = 0
 682              		@ link register save eliminated.
 247:Src/main.c    ****   /* USER CODE BEGIN Error_Handler_Debug */
 248:Src/main.c    ****   /* User can add his own implementation to report the HAL error return state */
 249:Src/main.c    **** 
 250:Src/main.c    ****   /* USER CODE END Error_Handler_Debug */
 251:Src/main.c    **** }
 683              		.loc 1 251 0
 684 0000 7047     		bx	lr
 685              		.cfi_endproc
 686              	.LFE74:
 688              		.global	amstrad2hid
 689              		.global	amstrad2ascii
 690              		.section	.bss.PS2buffer,"aw",%nobits
 691              		.align	2
 692              		.set	.LANCHOR7,. + 0
 695              	PS2buffer:
 696 0000 00000000 		.space	16
 696      00000000 
 696      00000000 
 696      00000000 
 697              		.section	.bss.bitcount.7393,"aw",%nobits
 698              		.set	.LANCHOR2,. + 0
 701              	bitcount.7393:
 702 0000 00       		.space	1
 703              		.section	.bss.head,"aw",%nobits
 704              		.set	.LANCHOR5,. + 0
 707              	head:
 708 0000 00       		.space	1
 709              		.section	.bss.incoming.7394,"aw",%nobits
 710              		.set	.LANCHOR3,. + 0
 713              	incoming.7394:
 714 0000 00       		.space	1
 715              		.section	.bss.parity.7396,"aw",%nobits
 716              		.set	.LANCHOR4,. + 0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 26


 719              	parity.7396:
 720 0000 00       		.space	1
 721              		.section	.bss.prev_ms.7395,"aw",%nobits
 722              		.align	2
 723              		.set	.LANCHOR1,. + 0
 726              	prev_ms.7395:
 727 0000 00000000 		.space	4
 728              		.section	.bss.tail,"aw",%nobits
 729              		.set	.LANCHOR6,. + 0
 732              	tail:
 733 0000 00       		.space	1
 734              		.section	.rodata.amstrad2ascii,"a",%progbits
 735              		.align	2
 738              	amstrad2ascii:
 739 0000 00       		.byte	0
 740 0001 00       		.byte	0
 741 0002 00       		.byte	0
 742 0003 6A       		.byte	106
 743 0004 00       		.byte	0
 744 0005 62       		.byte	98
 745 0006 00       		.byte	0
 746 0007 00       		.byte	0
 747 0008 00       		.byte	0
 748 0009 00       		.byte	0
 749 000a 00       		.byte	0
 750 000b 76       		.byte	118
 751 000c 00       		.byte	0
 752 000d 75       		.byte	117
 753 000e 69       		.byte	105
 754 000f 00       		.byte	0
 755 0010 00       		.byte	0
 756 0011 00       		.byte	0
 757 0012 00       		.byte	0
 758 0013 00       		.byte	0
 759 0014 00       		.byte	0
 760 0015 00       		.byte	0
 761 0016 00       		.byte	0
 762 0017 00       		.byte	0
 763 0018 00       		.byte	0
 764 0019 00       		.byte	0
 765 001a 00       		.byte	0
 766 001b 35       		.byte	53
 767 001c 00       		.byte	0
 768 001d 36       		.byte	54
 769 001e 37       		.byte	55
 770 001f 00       		.byte	0
 771 0020 00       		.byte	0
 772 0021 71       		.byte	113
 773 0022 34       		.byte	52
 774 0023 77       		.byte	119
 775 0024 65       		.byte	101
 776 0025 00       		.byte	0
 777 0026 72       		.byte	114
 778 0027 00       		.byte	0
 779 0028 00       		.byte	0
 780 0029 67       		.byte	103
 781 002a 00       		.byte	0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 27


 782 002b 00       		.byte	0
 783 002c 0A       		.byte	10
 784 002d 00       		.byte	0
 785 002e 00       		.byte	0
 786 002f 00       		.byte	0
 787 0030 00       		.byte	0
 788 0031 61       		.byte	97
 789 0032 6F       		.byte	111
 790 0033 73       		.byte	115
 791 0034 70       		.byte	112
 792 0035 64       		.byte	100
 793 0036 66       		.byte	102
 794 0037 00       		.byte	0
 795 0038 00       		.byte	0
 796 0039 00       		.byte	0
 797 003a 6C       		.byte	108
 798 003b 5C       		.byte	92
 799 003c 00       		.byte	0
 800 003d 7A       		.byte	122
 801 003e 00       		.byte	0
 802 003f 00       		.byte	0
 803 0040 00       		.byte	0
 804 0041 6E       		.byte	110
 805 0042 6D       		.byte	109
 806 0043 3F       		.byte	63
 807 0044 3A       		.byte	58
 808 0045 00       		.byte	0
 809 0046 00       		.byte	0
 810 0047 00       		.byte	0
 811 0048 00       		.byte	0
 812 0049 00       		.byte	0
 813 004a 00       		.byte	0
 814 004b 20       		.byte	32
 815 004c 00       		.byte	0
 816 004d 00       		.byte	0
 817 004e 78       		.byte	120
 818 004f 00       		.byte	0
 819 0050 00       		.byte	0
 820 0051 00       		.byte	0
 821 0052 74       		.byte	116
 822 0053 00       		.byte	0
 823 0054 63       		.byte	99
 824 0055 00       		.byte	0
 825 0056 00       		.byte	0
 826 0057 00       		.byte	0
 827 0058 00       		.byte	0
 828 0059 00       		.byte	0
 829 005a 00       		.byte	0
 830 005b 68       		.byte	104
 831 005c 00       		.byte	0
 832 005d 79       		.byte	121
 833 005e 00       		.byte	0
 834 005f 00       		.byte	0
 835 0060 00       		.byte	0
 836 0061 00       		.byte	0
 837 0062 00       		.byte	0
 838 0063 00       		.byte	0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 28


 839 0064 00       		.byte	0
 840 0065 00       		.byte	0
 841 0066 00       		.byte	0
 842 0067 00       		.byte	0
 843 0068 00       		.byte	0
 844 0069 00       		.byte	0
 845 006a 00       		.byte	0
 846 006b 33       		.byte	51
 847 006c 7F       		.byte	127
 848 006d 00       		.byte	0
 849 006e 00       		.byte	0
 850 006f 00       		.byte	0
 851 0070 00       		.byte	0
 852 0071 1B       		.byte	27
 853 0072 00       		.byte	0
 854 0073 32       		.byte	50
 855 0074 31       		.byte	49
 856 0075 30       		.byte	48
 857 0076 6B       		.byte	107
 858 0077 00       		.byte	0
 859 0078 00       		.byte	0
 860 0079 38       		.byte	56
 861 007a 00       		.byte	0
 862 007b 00       		.byte	0
 863 007c 00       		.byte	0
 864 007d 39       		.byte	57
 865 007e 00       		.byte	0
 866 007f 00       		.byte	0
 867 0080 00       		.byte	0
 868 0081 00       		.byte	0
 869 0082 00       		.byte	0
 870 0083 00       		.byte	0
 871 0084 00       		.byte	0
 872              		.section	.rodata.amstrad2hid,"a",%progbits
 873              		.align	2
 874              		.set	.LANCHOR0,. + 0
 877              	amstrad2hid:
 878 0000 00       		.byte	0
 879 0001 00       		.byte	0
 880 0002 00       		.byte	0
 881 0003 0D       		.byte	13
 882 0004 00       		.byte	0
 883 0005 05       		.byte	5
 884 0006 00       		.byte	0
 885 0007 00       		.byte	0
 886 0008 00       		.byte	0
 887 0009 4F       		.byte	79
 888 000a 00       		.byte	0
 889 000b 19       		.byte	25
 890 000c 00       		.byte	0
 891 000d 18       		.byte	24
 892 000e 0C       		.byte	12
 893 000f 00       		.byte	0
 894 0010 00       		.byte	0
 895 0011 00       		.byte	0
 896 0012 00       		.byte	0
 897 0013 00       		.byte	0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 29


 898 0014 00       		.byte	0
 899 0015 00       		.byte	0
 900 0016 50       		.byte	80
 901 0017 00       		.byte	0
 902 0018 00       		.byte	0
 903 0019 00       		.byte	0
 904 001a 00       		.byte	0
 905 001b 22       		.byte	34
 906 001c 00       		.byte	0
 907 001d 23       		.byte	35
 908 001e 24       		.byte	36
 909 001f 00       		.byte	0
 910 0020 00       		.byte	0
 911 0021 14       		.byte	20
 912 0022 21       		.byte	33
 913 0023 1A       		.byte	26
 914 0024 08       		.byte	8
 915 0025 00       		.byte	0
 916 0026 15       		.byte	21
 917 0027 00       		.byte	0
 918 0028 00       		.byte	0
 919 0029 0A       		.byte	10
 920 002a 00       		.byte	0
 921 002b 00       		.byte	0
 922 002c 28       		.byte	40
 923 002d 00       		.byte	0
 924 002e 51       		.byte	81
 925 002f 00       		.byte	0
 926 0030 00       		.byte	0
 927 0031 04       		.byte	4
 928 0032 12       		.byte	18
 929 0033 16       		.byte	22
 930 0034 13       		.byte	19
 931 0035 07       		.byte	7
 932 0036 09       		.byte	9
 933 0037 00       		.byte	0
 934 0038 00       		.byte	0
 935 0039 00       		.byte	0
 936 003a 0F       		.byte	15
 937 003b 31       		.byte	49
 938 003c 00       		.byte	0
 939 003d 1D       		.byte	29
 940 003e 52       		.byte	82
 941 003f 00       		.byte	0
 942 0040 00       		.byte	0
 943 0041 11       		.byte	17
 944 0042 10       		.byte	16
 945 0043 38       		.byte	56
 946 0044 33       		.byte	51
 947 0045 00       		.byte	0
 948 0046 00       		.byte	0
 949 0047 00       		.byte	0
 950 0048 00       		.byte	0
 951 0049 39       		.byte	57
 952 004a 00       		.byte	0
 953 004b 2C       		.byte	44
 954 004c 00       		.byte	0
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 30


 955 004d 00       		.byte	0
 956 004e 1B       		.byte	27
 957 004f 00       		.byte	0
 958 0050 00       		.byte	0
 959 0051 00       		.byte	0
 960 0052 17       		.byte	23
 961 0053 00       		.byte	0
 962 0054 06       		.byte	6
 963 0055 00       		.byte	0
 964 0056 00       		.byte	0
 965 0057 00       		.byte	0
 966 0058 00       		.byte	0
 967 0059 00       		.byte	0
 968 005a 00       		.byte	0
 969 005b 0B       		.byte	11
 970 005c 00       		.byte	0
 971 005d 1C       		.byte	28
 972 005e 00       		.byte	0
 973 005f 00       		.byte	0
 974 0060 00       		.byte	0
 975 0061 00       		.byte	0
 976 0062 00       		.byte	0
 977 0063 00       		.byte	0
 978 0064 00       		.byte	0
 979 0065 00       		.byte	0
 980 0066 00       		.byte	0
 981 0067 00       		.byte	0
 982 0068 00       		.byte	0
 983 0069 00       		.byte	0
 984 006a 00       		.byte	0
 985 006b 20       		.byte	32
 986 006c 2A       		.byte	42
 987 006d 00       		.byte	0
 988 006e 00       		.byte	0
 989 006f 00       		.byte	0
 990 0070 00       		.byte	0
 991 0071 29       		.byte	41
 992 0072 00       		.byte	0
 993 0073 1F       		.byte	31
 994 0074 1E       		.byte	30
 995 0075 27       		.byte	39
 996 0076 0E       		.byte	14
 997 0077 00       		.byte	0
 998 0078 00       		.byte	0
 999 0079 25       		.byte	37
 1000 007a 00       		.byte	0
 1001 007b 00       		.byte	0
 1002 007c 00       		.byte	0
 1003 007d 26       		.byte	38
 1004 007e 00       		.byte	0
 1005 007f 00       		.byte	0
 1006 0080 00       		.byte	0
 1007 0081 00       		.byte	0
 1008 0082 00       		.byte	0
 1009 0083 46       		.byte	70
 1010 0084 00       		.byte	0
 1011              		.text
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 31


 1012              	.Letext0:
 1013              		.file 3 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include\
 1014              		.file 4 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include\
 1015              		.file 5 "Drivers/CMSIS/Include/core_cm3.h"
 1016              		.file 6 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h"
 1017              		.file 7 "Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h"
 1018              		.file 8 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h"
 1019              		.file 9 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h"
 1020              		.file 10 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h"
 1021              		.file 11 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h"
 1022              		.file 12 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h"
 1023              		.file 13 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include
 1024              		.file 14 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include
 1025              		.file 15 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\lib\\gcc\\arm-none-eab
 1026              		.file 16 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include
 1027              		.file 17 "c:\\program files (x86)\\gnu tools arm embedded\\7 2017-q4-major\\arm-none-eabi\\include
 1028              		.file 18 "Middlewares/ST/STM32_USB_Device_Library/Core/Inc/usbd_def.h"
 1029              		.file 19 "Middlewares/ST/STM32_USB_Device_Library/Class/HID/Inc/usbd_hid.h"
 1030              		.file 20 "Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h"
 1031              		.file 21 "Inc/usb_device.h"
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 32


DEFINED SYMBOLS
                            *ABS*:00000000 main.c
X:\TMP\USER_T~1\ccsKrPuI.s:16     .text.MX_GPIO_Init:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:22     .text.MX_GPIO_Init:00000000 MX_GPIO_Init
X:\TMP\USER_T~1\ccsKrPuI.s:144    .text.MX_GPIO_Init:000000ac $d
X:\TMP\USER_T~1\ccsKrPuI.s:151    .text.scan_decode:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:158    .text.scan_decode:00000000 scan_decode
X:\TMP\USER_T~1\ccsKrPuI.s:175    .text.scan_decode:00000008 $d
X:\TMP\USER_T~1\ccsKrPuI.s:180    .text.ps2interrupt:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:187    .text.ps2interrupt:00000000 ps2interrupt
X:\TMP\USER_T~1\ccsKrPuI.s:232    .text.ps2interrupt:00000034 $d
X:\TMP\USER_T~1\ccsKrPuI.s:337    .text.ps2interrupt:000000b8 $d
X:\TMP\USER_T~1\ccsKrPuI.s:348    .text.get_PS2scan_code:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:355    .text.get_PS2scan_code:00000000 get_PS2scan_code
X:\TMP\USER_T~1\ccsKrPuI.s:403    .text.get_PS2scan_code:0000002c $d
X:\TMP\USER_T~1\ccsKrPuI.s:410    .text.SystemClock_Config:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:417    .text.SystemClock_Config:00000000 SystemClock_Config
X:\TMP\USER_T~1\ccsKrPuI.s:507    .text.main:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:514    .text.main:00000000 main
X:\TMP\USER_T~1\ccsKrPuI.s:662    .text.main:000000d4 $d
X:\TMP\USER_T~1\ccsKrPuI.s:669    .text.Error_Handler:00000000 $t
X:\TMP\USER_T~1\ccsKrPuI.s:676    .text.Error_Handler:00000000 Error_Handler
X:\TMP\USER_T~1\ccsKrPuI.s:877    .rodata.amstrad2hid:00000000 amstrad2hid
X:\TMP\USER_T~1\ccsKrPuI.s:738    .rodata.amstrad2ascii:00000000 amstrad2ascii
X:\TMP\USER_T~1\ccsKrPuI.s:691    .bss.PS2buffer:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:695    .bss.PS2buffer:00000000 PS2buffer
X:\TMP\USER_T~1\ccsKrPuI.s:701    .bss.bitcount.7393:00000000 bitcount.7393
X:\TMP\USER_T~1\ccsKrPuI.s:702    .bss.bitcount.7393:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:707    .bss.head:00000000 head
X:\TMP\USER_T~1\ccsKrPuI.s:708    .bss.head:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:713    .bss.incoming.7394:00000000 incoming.7394
X:\TMP\USER_T~1\ccsKrPuI.s:714    .bss.incoming.7394:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:719    .bss.parity.7396:00000000 parity.7396
X:\TMP\USER_T~1\ccsKrPuI.s:720    .bss.parity.7396:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:722    .bss.prev_ms.7395:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:726    .bss.prev_ms.7395:00000000 prev_ms.7395
X:\TMP\USER_T~1\ccsKrPuI.s:732    .bss.tail:00000000 tail
X:\TMP\USER_T~1\ccsKrPuI.s:733    .bss.tail:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:735    .rodata.amstrad2ascii:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:873    .rodata.amstrad2hid:00000000 $d
X:\TMP\USER_T~1\ccsKrPuI.s:243    .text.ps2interrupt:0000003f $d
X:\TMP\USER_T~1\ccsKrPuI.s:243    .text.ps2interrupt:00000040 $t

UNDEFINED SYMBOLS
HAL_GPIO_WritePin
HAL_GPIO_Init
HAL_NVIC_SetPriority
HAL_NVIC_EnableIRQ
HAL_GetTick
HAL_RCC_OscConfig
HAL_RCC_ClockConfig
HAL_RCCEx_PeriphCLKConfig
HAL_Init
MX_USB_DEVICE_Init
USBD_HID_SendReport
HAL_Delay
hUsbDeviceFS
ARM GAS  X:\TMP\USER_T~1\ccsKrPuI.s 			page 33


