1 ; source : 0_b4-6_ic1038.bin 2 ; created: 2022-09-06 21:08:16 3 ; by : jayne 4 ; md5 : 1f8bedb609bba5b511182a4509fa345b 5 ; 6 ; constant 7 ; 000000 8 HIGH_ZERO = 0x00 000000 9 NO = 0x00 0000FF 10 YES = 0xff 000001 11 ON = 0x01 000001 12 TOGGLE_SLED = 0x01 000000 13 STATUS_SLED = 0x00 000004 14 TOGGLE_GLED = 0x04 000002 15 STATUS_GLED = 0x02 000000 16 OFF = 0x00 000000 17 REG_0 = 0x00 00000E 18 REG_14_CURSOR_H = 0x0e 00000F 19 REG_14_CURSOR_L = 0x0f 000010 20 CFG10 = 0x10 000007 21 ROM_ACCESS_EN = 0x07 000006 22 ROM_PACK_EN = 0x06 000004 23 _BUZZER_ON = 0x04 000003 24 CMT_MOTOR_START = 0x03 000002 25 CMT_RS232_SELECT = 0x02 000001 26 _DISPLAY_INHIBIT = 0x01 000000 27 _CRT80 = 0x00 000010 28 STATUS10 = 0x10 000007 29 _CRT_DISPLAY = 0x07 000006 30 _CRT_NTSC = 0x06 000005 31 _PRT_SERIAL = 0x05 000001 32 _GFX_AVAILABLE = 0x01 000000 33 _FDD_PRESENT = 0x00 00001C 34 MASK_COUNTRY_SELECT = 0x1c 000007 35 MASK_COUNTRY_BITS = 0x07 000000 36 COUNTRY_INTERNATIONAL = 0x00 000001 37 COUNTRY_DE = 0x01 000002 38 COUNTRY_US = 0x02 000003 39 COUNTRY_FR = 0x03 000004 40 COUNTRY_UK = 0x04 000005 41 COUNTRY_IT = 0x05 000006 42 COUNTRY_ES = 0x06 000007 43 COUNTRY_07 = 0x07 000020 44 CFG20 = 0x20 000000 45 CRT_RESET = 0x00 000001 46 CEN_RESET = 0x01 000002 47 CEN_STROBE = 0x02 000003 48 MONINH = 0x03 000004 49 GLED = 0x04 000005 50 SLED = 0x05 000006 51 UPPER_MONITOR_SEL = 0x06 000020 52 STATUS_KBD = 0x20 00000C 53 KBD_COLUMNS = 0x0c 00004F 54 KBD_POSITION_CTRL = 0x4f 000053 55 KBD_POSITION_SHIFT = 0x53 00004E 56 KBD_POSITION_SHIFT_LOCK = 0x4e 00004D 57 KBD_POSITION_COMMAND = 0x4d 000056 58 KBD_POSITION_GRAPH = 0x56 000007 59 KBD_BREAK = 0x07 000001 60 MODIFIER_SHIFT = 0x01 000030 61 STATUS30 = 0x30 000030 62 CEN_DATA = 0x30 000000 63 _SIOC = 0x00 000001 64 _CRT_VSYNC_PERIOD = 0x01 000002 65 _CEN_ACKNOWLEDGE = 0x02 000003 66 _CEN_BUSY = 0x03 000040 67 UART_DATA = 0x40 000041 68 UART_CMD = 0x41 000041 69 UART_STATUS = 0x41 000000 70 _TxRDY = 0x00 000001 71 _RxRDY = 0x01 000007 72 _DSR = 0x07 000050 73 CRT_REG = 0x50 000051 74 CRT_DATA = 0x51 000060 75 DMA = 0x60 000068 76 DMA_MODE_SET = 0x68 000070 77 PIC_ICW1 = 0x70 000071 78 PIC_ICW2 = 0x71 000071 79 PIC_OCW1 = 0x71 000008 80 FDC_CMD_SENSE_INTERRUPT_STATE = 0x08 0000F0 81 FDC_UNIT = 0xf0 0000F0 82 UPD765_STATE = 0xf0 0000F8 83 UPD765_DATA = 0xf8 0000F9 84 UPD765_MAIN_STATUS = 0xf9 000007 85 RQM_Request_for_master = 0x07 000006 86 DIO_Data_input_output = 0x06 0000C3 87 ID_JMP = 0xc3 00007E 88 ID_IS_BASIC = 0x7e 000018 89 SCREEN_HEIGHT = 0x18 00000A 90 VK_NL = 0x0a 00000D 91 VK_ENTER = 0x0d 00001B 92 VK_ESC = 0x1b 00001D 93 VK_LEFT = 0x1d 00001C 94 VK_RIGHT = 0x1c 00001E 95 VK_UP = 0x1e 00001F 96 VK_DOWN = 0x1f 00007F 97 VK_DEL = 0x7f 00007E 98 GERMAN_MAX_ASCII_CODE = 0x7e 00005F 99 MASK_CAPITALIZE = 0x5f 000030 100 ATTR0_NONE = 0x30 000033 101 ATTR3_BLINK_INVERSE = 0x33 0000C0 102 VRAM_ATTR_MASK = 0xc0 000080 103 VRAM_ATTR_INVERS = 0x80 000007 104 _VRAM_ATTR_INVERS = 0x07 000002 105 _DRV_CTRL_INTERNAL = 0x02 000003 106 _DRV_CTRL_84 = 0x03 000006 107 _DRV_FG_BG_SAME_COLOR = 0x06 000007 108 _DRV_NO_CLS = 0x07 000030 109 COLOR0_BLACK = 0x30 000037 110 COLOR7_WHITE = 0x37 000030 111 COLOR0_BLACK = 0x30 000008 112 COLOR_COUNT = 0x08 000030 113 ATTR_WIDTH40 = 0x30 000031 114 ATTR_WIDTH80 = 0x31 115 00C200 116 boot_sector = 0xc200 000000 117 cold_start = 0x0000 000008 118 id_basic = 0x0008 000038 119 rst_38 = 0x0038 00003B 120 basic_start = 0x003b 00F000 121 BWS = 0xf000 00F000 122 stack_at_boot = 0xf000 00F000 123 bios_rom = 0xf000 001000 124 SIZE4K = 0x1000 000800 125 OFFSET_COLOR = 0x0800 00A000 126 ROM_PACK_16K = 0xa000 00C000 127 ROM_PACK_8K = 0xc000 00FFFF 128 MAX_ADDRESS = 0xffff 000023 129 str_monitor_size = 0x0023 00000E 130 str_memory_size = 0x000e 00000E 131 str_completed_size = 0x000e 000010 132 str_area_over_size = 0x0010 00000E 133 str_print_off_size = 0x000e 00000D 134 str_print_on_size = 0x000d 00000D 135 str_break_at_size = 0x000d 00002D 136 str_reg_size = 0x002d 00000C 137 kbd_matrix_buffer_size = 0x000c 00000C 138 kbd_matrix_buffer2_size = 0x000c 0000C0 139 kbd_table_lookup_size = 0x00c0 000010 140 crt_table40_size = 0x0010 000010 141 crt_table80_size = 0x0010 000005 142 fdc_cmd_init_size = 0x0005 000009 143 fdc_cmd_read_boot_size = 0x0009 000060 144 kbd_table_int_size = 0x0060 000060 145 kbd_table_int_sh_size = 0x0060 0000C0 146 kbd_table_de_size = 0x00c0 0000C0 147 kbd_table_us_size = 0x00c0 0000C0 148 kbd_table_fr_size = 0x00c0 0000C0 149 kbd_table_uk_size = 0x00c0 0000C0 150 kbd_table_it_size = 0x00c0 0000C0 151 kbd_table_es_size = 0x00c0 000024 152 crt_table_ntsc_size = 0x0024 153 ; 154 ; 155 ; 00E000 156 init_bios: 00E000 21 69 E4 [10] 157 ld hl,#cfg20_settings 00E003 CB DE [15] 158 set 3,(hl) ;MONINH=1 00E005 7E [ 7] 159 ld a,(hl) 00E006 D3 20 [11] 160 out (CFG20),a 00E008 CD 9D E5 [17] 161 call kbd_buffer_clear_beep 00E00B 21 68 E4 [10] 162 ld hl,#cfg10_settings 00E00E CB F6 [15] 163 set 6,(hl) ;ROM_PACK_EN=1 00E010 7E [ 7] 164 ld a,(hl) 00E011 D3 10 [11] 165 out (CFG10),a 00E013 3A 00 A0 [13] 166 ld a,(ROM_PACK_16K) 00E016 FE C3 [ 7] 167 cp a,#ID_JMP 00E018 CA 00 A0 [10] 168 jp z,ROM_PACK_16K 00E01B 3A 00 C0 [13] 169 ld a,(ROM_PACK_8K) 00E01E FE C3 [ 7] 170 cp a,#ID_JMP 00E020 CA 00 C0 [10] 171 jp z,ROM_PACK_8K 00E023 21 68 E4 [10] 172 ld hl,#cfg10_settings 00E026 CB B6 [15] 173 res 6,(hl) ;ROM_PACK_EN=0 00E028 7E [ 7] 174 ld a,(hl) 00E029 D3 10 [11] 175 out (CFG10),a 00E02B DB 10 [11] 176 in a,(STATUS10) 00E02D CB 47 [ 8] 177 bit 0,a ;_FDD_PRESENT==0 00E02F C2 98 EF [10] 178 jp nz,fdd_available 00E032 3A 08 00 [13] 179 ld a,(id_basic) 00E035 FE 7E [ 7] 180 cp a,#ID_IS_BASIC 00E037 28 0C [12] 181 jr z,go_basic 00E039 21 68 E4 [10] 182 ld hl,#cfg10_settings 00E03C CB FE [15] 183 set 7,(hl) ;ROM_ACCESS_EN=1 00E03E 7E [ 7] 184 ld a,(hl) 00E03F 77 [ 7] 185 ld (hl),a 00E040 D3 10 [11] 186 out (CFG10),a 00E042 C3 60 E0 [10] 187 jp go_monitor 00E045 188 go_basic: 00E045 CD 74 EF [17] 189 call patch_os_functions 00E048 C3 3B 00 [10] 190 jp basic_start 191 ; unchecked data source 00E04B 00 00 00 00 00 00 00 192 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E053 00 00 00 00 00 00 00 193 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E05B 00 00 00 00 00 194 .db 0x00,0x00,0x00,0x00,0x00 ;..... 00E060 195 go_monitor: 00E060 ED 73 C6 E4 [20] 196 ld (save_stack),sp 00E064 31 00 F0 [10] 197 ld sp,#stack_at_boot 00E067 CD 8C EF [17] 198 call restore_os_functions 00E06A 21 E9 E2 [10] 199 ld hl,#str_monitor 00E06D 200 m_e06d: 00E06D CD 6A EF [17] 201 call puts 00E070 CD 53 EF [17] 202 call get_hex_number 00E073 FE 0D [ 7] 203 cp a,#VK_ENTER 00E075 28 08 [12] 204 jr z,m_e07f 00E077 CD C3 E3 [17] 205 call print_new_line 00E07A 21 0C E3 [10] 206 ld hl,#str_memory 00E07D 18 EE [12] 207 jr m_e06d 00E07F 208 m_e07f: 00E07F 2A 9C E4 [16] 209 ld hl,(param_word) 00E082 7C [ 4] 210 ld a,h 00E083 B5 [ 4] 211 or a,l 00E084 20 03 [12] 212 jr nz,m_e089 00E086 21 FF FF [10] 213 ld hl,#MAX_ADDRESS 00E089 214 m_e089: 00E089 22 A4 E4 [16] 215 ld (max_address),hl 00E08C 216 monitor_cmd_loop: 00E08C 21 8C E0 [10] 217 ld hl,#monitor_cmd_loop 00E08F E5 [11] 218 push hl 00E090 CD C3 E3 [17] 219 call print_new_line 00E093 0E 2A [ 7] 220 ld c,#'*' 00E095 CD D5 E3 [17] 221 call put_char 00E098 CD F2 E3 [17] 222 call get_char_echoed 00E09B FE 1B [ 7] 223 cp a,#VK_ESC 00E09D C8 [11] 224 ret z 00E09E E6 5F [ 7] 225 and a,#MASK_CAPITALIZE 00E0A0 FE 45 [ 7] 226 cp a,#'E' 00E0A2 CA 70 E2 [10] 227 jp z,return_to_basic 00E0A5 FE 50 [ 7] 228 cp a,#'P' 00E0A7 CA 57 E2 [10] 229 jp z,enable_protocol_printer 00E0AA FE 4D [ 7] 230 cp a,#'M' 00E0AC CA F2 E0 [10] 231 jp z,monitor_cmd_mem_move 00E0AF FE 44 [ 7] 232 cp a,#'D' 00E0B1 CA 78 E1 [10] 233 jp z,m_e178 00E0B4 FE 47 [ 7] 234 cp a,#'G' 00E0B6 CA C9 E1 [10] 235 jp z,m_e1c9 00E0B9 FE 52 [ 7] 236 cp a,#'R' 00E0BB CA 1D E2 [10] 237 jp z,m_e21d 00E0BE FE 43 [ 7] 238 cp a,#'C' 00E0C0 C0 [11] 239 ret nz 00E0C1 CD CD E3 [17] 240 call print_space 00E0C4 CD 53 EF [17] 241 call get_hex_number 00E0C7 FE 0D [ 7] 242 cp a,#VK_ENTER 00E0C9 C0 [11] 243 ret nz 00E0CA 2A 9C E4 [16] 244 ld hl,(param_word) 00E0CD 245 m_e0cd: 00E0CD CD DC E2 [17] 246 call m_e2dc 00E0D0 247 m_e0d0: 00E0D0 E5 [11] 248 push hl 00E0D1 CD AB E3 [17] 249 call m_e3ab 00E0D4 CD E0 E3 [17] 250 call m_e3e0 00E0D7 E1 [10] 251 pop hl 00E0D8 38 09 [12] 252 jr c,m_e0e3 00E0DA 77 [ 7] 253 ld (hl),a 00E0DB 254 m_e0db: 00E0DB 23 [ 6] 255 inc hl 00E0DC 7D [ 4] 256 ld a,l 00E0DD E6 07 [ 7] 257 and a,#0x07 00E0DF 20 EF [12] 258 jr nz,m_e0d0 00E0E1 18 EA [12] 259 jr m_e0cd 00E0E3 260 m_e0e3: 00E0E3 FE 20 [ 7] 261 cp a,#0x20 00E0E5 20 05 [12] 262 jr nz,m_e0ec 00E0E7 CD CD E3 [17] 263 call print_space 00E0EA 18 EF [12] 264 jr m_e0db 00E0EC 265 m_e0ec: 00E0EC FE 2D [ 7] 266 cp a,#0x2d 00E0EE C0 [11] 267 ret nz 00E0EF 2B [ 6] 268 dec hl 00E0F0 18 DB [12] 269 jr m_e0cd 00E0F2 270 monitor_cmd_mem_move: 00E0F2 CD CD E3 [17] 271 call print_space 00E0F5 CD 53 EF [17] 272 call get_hex_number 00E0F8 FE 2C [ 7] 273 cp a,#',' 00E0FA C0 [11] 274 ret nz 00E0FB 2A 9C E4 [16] 275 ld hl,(param_word) 00E0FE 22 9E E4 [16] 276 ld (param_1),hl 00E101 CD 53 EF [17] 277 call get_hex_number 00E104 FE 2C [ 7] 278 cp a,#',' 00E106 C0 [11] 279 ret nz 00E107 2A 9E E4 [16] 280 ld hl,(param_1) 00E10A EB [ 4] 281 ex de,hl 00E10B 2A 9C E4 [16] 282 ld hl,(param_word) 00E10E 22 A0 E4 [16] 283 ld (param_2),hl 00E111 B7 [ 4] 284 or a,a 00E112 ED 52 [15] 285 sbc hl,de 00E114 D8 [11] 286 ret c 00E115 23 [ 6] 287 inc hl 00E116 22 A2 E4 [16] 288 ld (param_3),hl 00E119 CD 53 EF [17] 289 call get_hex_number 00E11C FE 0D [ 7] 290 cp a,#VK_ENTER 00E11E C0 [11] 291 ret nz 00E11F 2A A2 E4 [16] 292 ld hl,(param_3) 00E122 2B [ 6] 293 dec hl 00E123 EB [ 4] 294 ex de,hl 00E124 2A 9C E4 [16] 295 ld hl,(param_word) 00E127 B7 [ 4] 296 or a,a 00E128 ED 5A [15] 297 adc hl,de 00E12A 38 40 [12] 298 jr c,m_e16c 00E12C EB [ 4] 299 ex de,hl 00E12D 2A A4 E4 [16] 300 ld hl,(max_address) 00E130 ED 52 [15] 301 sbc hl,de 00E132 38 38 [12] 302 jr c,m_e16c 00E134 D5 [11] 303 push de 00E135 2A 9E E4 [16] 304 ld hl,(param_1) 00E138 EB [ 4] 305 ex de,hl 00E139 2A 9C E4 [16] 306 ld hl,(param_word) 00E13C B7 [ 4] 307 or a,a 00E13D ED 52 [15] 308 sbc hl,de 00E13F 38 1D [12] 309 jr c,m_e15e 00E141 D1 [10] 310 pop de 00E142 7C [ 4] 311 ld a,h 00E143 B5 [ 4] 312 or a,l 00E144 28 11 [12] 313 jr z,m_e157 00E146 2A A2 E4 [16] 314 ld hl,(param_3) 00E149 E5 [11] 315 push hl 00E14A C1 [10] 316 pop bc 00E14B 2A A0 E4 [16] 317 ld hl,(param_2) 00E14E 318 m_e14e: 00E14E 7E [ 7] 319 ld a,(hl) 00E14F 12 [ 7] 320 ld (de),a 00E150 2B [ 6] 321 dec hl 00E151 1B [ 6] 322 dec de 00E152 0B [ 6] 323 dec bc 00E153 78 [ 4] 324 ld a,b 00E154 B1 [ 4] 325 or a,c 00E155 20 F7 [12] 326 jr nz,m_e14e 00E157 327 m_e157: 00E157 21 1A E3 [10] 328 ld hl,#str_completed 00E15A CD 6A EF [17] 329 call puts 00E15D C9 [10] 330 ret 00E15E 331 m_e15e: 00E15E 2A A2 E4 [16] 332 ld hl,(param_3) 00E161 E5 [11] 333 push hl 00E162 C1 [10] 334 pop bc 00E163 2A 9C E4 [16] 335 ld hl,(0xe49c) 00E166 EB [ 4] 336 ex de,hl 00E167 ED B0 [21] 337 ldir 00E169 D1 [10] 338 pop de 00E16A 18 EB [12] 339 jr m_e157 00E16C 340 m_e16c: 00E16C 21 28 E3 [10] 341 ld hl,#str_area_over 00E16F CD 6A EF [17] 342 call puts 00E172 21 0C E3 [10] 343 ld hl,#str_memory 00E175 C3 6D E0 [10] 344 jp m_e06d 00E178 345 m_e178: 00E178 CD CD E3 [17] 346 call print_space 00E17B CD 53 EF [17] 347 call get_hex_number 00E17E FE 2C [ 7] 348 cp a,#0x2c 00E180 C0 [11] 349 ret nz 00E181 2A 9C E4 [16] 350 ld hl,(0xe49c) 00E184 22 9E E4 [16] 351 ld (param_1),hl 00E187 CD 53 EF [17] 352 call get_hex_number 00E18A FE 0D [ 7] 353 cp a,#0x0d 00E18C C0 [11] 354 ret nz 00E18D 2A 9E E4 [16] 355 ld hl,(param_1) 00E190 EB [ 4] 356 ex de,hl 00E191 2A 9C E4 [16] 357 ld hl,(0xe49c) 00E194 B7 [ 4] 358 or a,a 00E195 ED 52 [15] 359 sbc hl,de 00E197 D8 [11] 360 ret c 00E198 23 [ 6] 361 inc hl 00E199 E5 [11] 362 push hl 00E19A EB [ 4] 363 ex de,hl 00E19B C1 [10] 364 pop bc 00E19C 365 m_e19c: 00E19C C5 [11] 366 push bc 00E19D E5 [11] 367 push hl 00E19E CD DC E2 [17] 368 call m_e2dc 00E1A1 CD D0 E2 [17] 369 call m_e2d0 00E1A4 E1 [10] 370 pop hl 00E1A5 C1 [10] 371 pop bc 00E1A6 11 A6 E4 [10] 372 ld de,#0xe4a6 00E1A9 373 m_e1a9: 00E1A9 CD 8D E3 [17] 374 call m_e38d 00E1AC 7E [ 7] 375 ld a,(hl) 00E1AD 12 [ 7] 376 ld (de),a 00E1AE 0B [ 6] 377 dec bc 00E1AF 78 [ 4] 378 ld a,b 00E1B0 B1 [ 4] 379 or a,c 00E1B1 23 [ 6] 380 inc hl 00E1B2 13 [ 6] 381 inc de 00E1B3 CA 82 E2 [10] 382 jp z,m_e282 00E1B6 3A 62 E4 [13] 383 ld a,(column_count) 00E1B9 EE 0F [ 7] 384 xor a,#0x0f 00E1BB E6 0F [ 7] 385 and a,#0x0f 00E1BD C5 [11] 386 push bc 00E1BE 47 [ 4] 387 ld b,a 00E1BF 7D [ 4] 388 ld a,l 00E1C0 A0 [ 4] 389 and a,b 00E1C1 C1 [10] 390 pop bc 00E1C2 20 E5 [12] 391 jr nz,m_e1a9 00E1C4 CD 82 E2 [17] 392 call m_e282 00E1C7 18 D3 [12] 393 jr m_e19c 00E1C9 394 m_e1c9: 00E1C9 CD CD E3 [17] 395 call print_space 00E1CC CD 53 EF [17] 396 call get_hex_number 00E1CF FE 0D [ 7] 397 cp a,#VK_ENTER 00E1D1 C0 [11] 398 ret nz 00E1D2 21 38 00 [10] 399 ld hl,#rst_38 00E1D5 EB [ 4] 400 ex de,hl 00E1D6 21 E7 E1 [10] 401 ld hl,#rst38_vec 00E1D9 01 03 00 [10] 402 ld bc,#3 00E1DC ED B0 [21] 403 ldir 00E1DE 21 E6 E1 [10] 404 ld hl,#op_return 00E1E1 E5 [11] 405 push hl 00E1E2 2A 9C E4 [16] 406 ld hl,(param_word) 00E1E5 E9 [ 4] 407 jp (hl) 00E1E6 408 op_return: 00E1E6 C9 [10] 409 ret 00E1E7 410 rst38_vec: 00E1E7 C3 EA E1 [10] 411 jp m_e1ea 00E1EA 412 m_e1ea: 00E1EA 22 BD E4 [16] 413 ld (0xe4bd),hl 00E1ED E1 [10] 414 pop hl 00E1EE 22 B7 E4 [16] 415 ld (0xe4b7),hl 00E1F1 F5 [11] 416 push af 00E1F2 E1 [10] 417 pop hl 00E1F3 22 BF E4 [16] 418 ld (0xe4bf),hl 00E1F6 ED 43 B9 E4 [20] 419 ld (0xe4b9),bc 00E1FA ED 53 BB E4 [20] 420 ld (0xe4bb),de 00E1FE ED 57 [ 9] 421 ld a,i 00E200 32 C1 E4 [13] 422 ld (0xe4c1),a 00E203 DD 22 C2 E4 [20] 423 ld (0xe4c2),ix 00E207 FD 22 C4 E4 [20] 424 ld (0xe4c4),iy 00E20B 21 53 E3 [10] 425 ld hl,#str_break_at 00E20E CD 6A EF [17] 426 call puts 00E211 2A B7 E4 [16] 427 ld hl,(0xe4b7) 00E214 CD 93 E3 [17] 428 call m_e393 00E217 31 00 F0 [10] 429 ld sp,#stack_at_boot 00E21A C3 8C E0 [10] 430 jp monitor_cmd_loop 00E21D 431 m_e21d: 00E21D 21 60 E3 [10] 432 ld hl,#str_reg 00E220 CD 6A EF [17] 433 call puts 00E223 2A B7 E4 [16] 434 ld hl,(0xe4b7) 00E226 CD 93 E3 [17] 435 call m_e393 00E229 21 B9 E4 [10] 436 ld hl,#0xe4b9 00E22C 0E 04 [ 7] 437 ld c,#0x04 00E22E 438 m_e22e: 00E22E C5 [11] 439 push bc 00E22F 23 [ 6] 440 inc hl 00E230 E5 [11] 441 push hl 00E231 CD 8D E3 [17] 442 call m_e38d 00E234 E1 [10] 443 pop hl 00E235 2B [ 6] 444 dec hl 00E236 E5 [11] 445 push hl 00E237 CD 8D E3 [17] 446 call m_e38d 00E23A E1 [10] 447 pop hl 00E23B 23 [ 6] 448 inc hl 00E23C 23 [ 6] 449 inc hl 00E23D C1 [10] 450 pop bc 00E23E 0D [ 4] 451 dec c 00E23F 20 ED [12] 452 jr nz,m_e22e 00E241 CD 8D E3 [17] 453 call m_e38d 00E244 CD CD E3 [17] 454 call print_space 00E247 2A C2 E4 [16] 455 ld hl,(0xe4c2) 00E24A CD 93 E3 [17] 456 call m_e393 00E24D CD CD E3 [17] 457 call print_space 00E250 2A C4 E4 [16] 458 ld hl,(0xe4c4) 00E253 CD 93 E3 [17] 459 call m_e393 00E256 C9 [10] 460 ret 00E257 461 enable_protocol_printer: 00E257 3A B6 E4 [13] 462 ld a,(printer_protocol_flag) 00E25A B7 [ 4] 463 or a,a 00E25B 28 0C [12] 464 jr z,m_e269 00E25D 3E 00 [ 7] 465 ld a,#OFF 00E25F 21 38 E3 [10] 466 ld hl,#str_print_off 00E262 467 m_e262: 00E262 32 B6 E4 [13] 468 ld (printer_protocol_flag),a 00E265 CD 6A EF [17] 469 call puts 00E268 C9 [10] 470 ret 00E269 471 m_e269: 00E269 3E 01 [ 7] 472 ld a,#ON 00E26B 21 46 E3 [10] 473 ld hl,#str_print_on 00E26E 18 F2 [12] 474 jr m_e262 00E270 475 return_to_basic: 00E270 3A 08 00 [13] 476 ld a,(id_basic) 00E273 FE 7E [ 7] 477 cp a,#ID_IS_BASIC 00E275 20 06 [12] 478 jr nz,just_go_back 00E277 CD 74 EF [17] 479 call patch_os_functions 00E27A 3E 0C [ 7] 480 ld a,#0x0c 00E27C DF [11] 481 rst 0x18 00E27D 482 just_go_back: 00E27D ED 7B C6 E4 [20] 483 ld sp,(save_stack) 00E281 C9 [10] 484 ret 00E282 485 m_e282: 00E282 E5 [11] 486 push hl 00E283 C5 [11] 487 push bc 00E284 3A 62 E4 [13] 488 ld a,(column_count) 00E287 E6 18 [ 7] 489 and a,#0x18 00E289 4F [ 4] 490 ld c,a 00E28A 06 00 [ 7] 491 ld b,#0x00 00E28C 21 A6 E4 [10] 492 ld hl,#0xe4a6 00E28F B7 [ 4] 493 or a,a 00E290 ED 4A [15] 494 adc hl,bc 00E292 B7 [ 4] 495 or a,a 00E293 ED 52 [15] 496 sbc hl,de 00E295 7D [ 4] 497 ld a,l 00E296 B7 [ 4] 498 or a,a 00E297 28 0E [12] 499 jr z,m_e2a7 00E299 500 m_e299: 00E299 E5 [11] 501 push hl 00E29A CD CD E3 [17] 502 call print_space 00E29D CD CD E3 [17] 503 call print_space 00E2A0 CD CD E3 [17] 504 call print_space 00E2A3 E1 [10] 505 pop hl 00E2A4 2D [ 4] 506 dec l 00E2A5 20 F2 [12] 507 jr nz,m_e299 00E2A7 508 m_e2a7: 00E2A7 CD CD E3 [17] 509 call print_space 00E2AA CD CD E3 [17] 510 call print_space 00E2AD 3A 62 E4 [13] 511 ld a,(column_count) 00E2B0 E6 18 [ 7] 512 and a,#0x18 00E2B2 47 [ 4] 513 ld b,a 00E2B3 21 A6 E4 [10] 514 ld hl,#0xe4a6 00E2B6 515 m_e2b6: 00E2B6 E5 [11] 516 push hl 00E2B7 C5 [11] 517 push bc 00E2B8 7E [ 7] 518 ld a,(hl) 00E2B9 FE 20 [ 7] 519 cp a,#' ' 00E2BB 38 04 [12] 520 jr c,non_char_printable 00E2BD FE 7F [ 7] 521 cp a,#VK_DEL 00E2BF 38 02 [12] 522 jr c,m_e2c3 00E2C1 523 non_char_printable: 00E2C1 3E 2E [ 7] 524 ld a,#'.' 00E2C3 525 m_e2c3: 00E2C3 4F [ 4] 526 ld c,a 00E2C4 CD D5 E3 [17] 527 call put_char 00E2C7 C1 [10] 528 pop bc 00E2C8 E1 [10] 529 pop hl 00E2C9 23 [ 6] 530 inc hl 00E2CA 05 [ 4] 531 dec b 00E2CB 20 E9 [12] 532 jr nz,m_e2b6 00E2CD C1 [10] 533 pop bc 00E2CE E1 [10] 534 pop hl 00E2CF C9 [10] 535 ret 00E2D0 536 m_e2d0: 00E2D0 21 A6 E4 [10] 537 ld hl,#0xe4a6 00E2D3 06 10 [ 7] 538 ld b,#0x10 00E2D5 539 m_e2d5: 00E2D5 36 00 [10] 540 ld (hl),#0x00 00E2D7 23 [ 6] 541 inc hl 00E2D8 05 [ 4] 542 dec b 00E2D9 20 FA [12] 543 jr nz,m_e2d5 00E2DB C9 [10] 544 ret 00E2DC 545 m_e2dc: 00E2DC CD C3 E3 [17] 546 call print_new_line 00E2DF CD 93 E3 [17] 547 call m_e393 00E2E2 C9 [10] 548 ret 00E2E3 549 unreferenced_02: 00E2E3 CD F2 E3 [17] 550 call get_char_echoed 00E2E6 FE 2C [ 7] 551 cp a,#',' 00E2E8 C9 [10] 552 ret 00E2E9 553 str_monitor: 00E2E9 0C 2A 20 4D 4F 4E 49 554 .db 0x0c,0x2a,0x20,0x4d,0x4f,0x4e,0x49,0x54 ;.* MONIT 54 00E2F1 4F 52 20 2A 20 28 56 555 .db 0x4f,0x52,0x20,0x2a,0x20,0x28,0x56,0x2e ;OR * (V. 2E 00E2F9 20 31 2E 32 29 20 4A 556 .db 0x20,0x31,0x2e,0x32,0x29,0x20,0x4a,0x75 ; 1.2) Ju 75 00E301 6E 65 20 31 39 38 33 557 .db 0x6e,0x65,0x20,0x31,0x39,0x38,0x33,0x0d ;ne 1983. 0D 00E309 0A 0D 0A 558 .db 0x0a,0x0d,0x0a ;... 00E30C 559 str_memory: 00E30C 4D 65 6D 6F 72 79 20 560 .db 0x4d,0x65,0x6d,0x6f,0x72,0x79,0x20,0x41 ;Memory A 41 00E314 72 65 61 20 3F 00 561 .db 0x72,0x65,0x61,0x20,0x3f,0x00 ;rea ?. 00E31A 562 str_completed: 00E31A 0D 0A 43 6F 6D 70 6C 563 .db 0x0d,0x0a,0x43,0x6f,0x6d,0x70,0x6c,0x65 ;..Comple 65 00E322 74 65 64 0D 0A 00 564 .db 0x74,0x65,0x64,0x0d,0x0a,0x00 ;ted... 00E328 565 str_area_over: 00E328 0D 0A 41 72 65 61 20 566 .db 0x0d,0x0a,0x41,0x72,0x65,0x61,0x20,0x4f ;..Area O 4F 00E330 76 65 72 20 21 0D 0A 567 .db 0x76,0x65,0x72,0x20,0x21,0x0d,0x0a,0x00 ;ver !... 00 00E338 568 str_print_off: 00E338 0D 0A 50 72 69 6E 74 569 .db 0x0d,0x0a,0x50,0x72,0x69,0x6e,0x74,0x20 ;..Print 20 00E340 4F 46 46 0D 0A 00 570 .db 0x4f,0x46,0x46,0x0d,0x0a,0x00 ;OFF... 00E346 571 str_print_on: 00E346 0D 0A 50 72 69 6E 74 572 .db 0x0d,0x0a,0x50,0x72,0x69,0x6e,0x74,0x20 ;..Print 20 00E34E 4F 4E 0D 0A 00 573 .db 0x4f,0x4e,0x0d,0x0a,0x00 ;ON... 00E353 574 str_break_at: 00E353 0D 0A 42 72 65 61 6B 575 .db 0x0d,0x0a,0x42,0x72,0x65,0x61,0x6b,0x20 ;..Break 20 00E35B 61 74 20 23 00 576 .db 0x61,0x74,0x20,0x23,0x00 ;at #. 00E360 577 str_reg: 00E360 0D 0A 20 50 43 20 20 578 .db 0x0d,0x0a,0x20,0x50,0x43,0x20,0x20,0x20 ;.. PC 20 00E368 42 20 20 43 20 20 44 579 .db 0x42,0x20,0x20,0x43,0x20,0x20,0x44,0x20 ;B C D 20 00E370 20 45 20 20 48 20 20 580 .db 0x20,0x45,0x20,0x20,0x48,0x20,0x20,0x4c ; E H L 4C 00E378 20 20 41 20 20 46 20 581 .db 0x20,0x20,0x41,0x20,0x20,0x46,0x20,0x20 ; A F 20 00E380 49 20 20 49 58 20 20 582 .db 0x49,0x20,0x20,0x49,0x58,0x20,0x20,0x20 ;I IX 20 00E388 49 59 0D 0A 00 583 .db 0x49,0x59,0x0d,0x0a,0x00 ;IY... 00E38D 584 m_e38d: 00E38D CD CD E3 [17] 585 call print_space 00E390 7E [ 7] 586 ld a,(hl) 00E391 18 05 [12] 587 jr m_e398 00E393 588 m_e393: 00E393 7C [ 4] 589 ld a,h 00E394 CD 9C E3 [17] 590 call m_e39c 00E397 7D [ 4] 591 ld a,l 00E398 592 m_e398: 00E398 CD 9C E3 [17] 593 call m_e39c 00E39B C9 [10] 594 ret 00E39C 595 m_e39c: 00E39C C5 [11] 596 push bc 00E39D F5 [11] 597 push af 00E39E 0F [ 4] 598 rrca 00E39F 0F [ 4] 599 rrca 00E3A0 0F [ 4] 600 rrca 00E3A1 0F [ 4] 601 rrca 00E3A2 CD B2 E3 [17] 602 call m_e3b2 00E3A5 F1 [10] 603 pop af 00E3A6 CD B2 E3 [17] 604 call m_e3b2 00E3A9 C1 [10] 605 pop bc 00E3AA C9 [10] 606 ret 00E3AB 607 m_e3ab: 00E3AB CD 8D E3 [17] 608 call m_e38d 00E3AE 0E 2D [ 7] 609 ld c,#'-' 00E3B0 18 09 [12] 610 jr m_e3bb 00E3B2 611 m_e3b2: 00E3B2 E6 0F [ 7] 612 and a,#0x0f 00E3B4 FE 0A [ 7] 613 cp a,#0x0a 00E3B6 30 07 [12] 614 jr nc,m_e3bf 00E3B8 C6 30 [ 7] 615 add a,#0x30 00E3BA 616 m_e3ba: 00E3BA 4F [ 4] 617 ld c,a 00E3BB 618 m_e3bb: 00E3BB CD D5 E3 [17] 619 call put_char 00E3BE C9 [10] 620 ret 00E3BF 621 m_e3bf: 00E3BF C6 37 [ 7] 622 add a,#0x37 00E3C1 18 F7 [12] 623 jr m_e3ba 00E3C3 624 print_new_line: 00E3C3 C5 [11] 625 push bc 00E3C4 0E 0D [ 7] 626 ld c,#VK_ENTER 00E3C6 CD D5 E3 [17] 627 call put_char 00E3C9 0E 0A [ 7] 628 ld c,#VK_NL 00E3CB 18 03 [12] 629 jr put_char_with_pop 00E3CD 630 print_space: 00E3CD C5 [11] 631 push bc 00E3CE 0E 20 [ 7] 632 ld c,#' ' 00E3D0 633 put_char_with_pop: 00E3D0 CD D5 E3 [17] 634 call put_char 00E3D3 C1 [10] 635 pop bc 00E3D4 C9 [10] 636 ret 00E3D5 637 put_char: 00E3D5 CD AC E7 [17] 638 call putch_internal 00E3D8 3A B6 E4 [13] 639 ld a,(printer_protocol_flag) 00E3DB B7 [ 4] 640 or a,a 00E3DC C4 39 E4 [17] 641 call nz,dev_printer_write_byte 00E3DF C9 [10] 642 ret 00E3E0 643 m_e3e0: 00E3E0 CD 34 EF [17] 644 call get_hex_digit 00E3E3 D8 [11] 645 ret c 00E3E4 07 [ 4] 646 rlca 00E3E5 07 [ 4] 647 rlca 00E3E6 07 [ 4] 648 rlca 00E3E7 07 [ 4] 649 rlca 00E3E8 47 [ 4] 650 ld b,a 00E3E9 CD 34 EF [17] 651 call get_hex_digit 00E3EC D8 [11] 652 ret c 00E3ED 80 [ 4] 653 add a,b 00E3EE 32 9C E4 [13] 654 ld (param_word),a 00E3F1 C9 [10] 655 ret 00E3F2 656 get_char_echoed: 00E3F2 CD 62 E7 [17] 657 call get_char 00E3F5 F5 [11] 658 push af 00E3F6 4F [ 4] 659 ld c,a 00E3F7 CD D5 E3 [17] 660 call put_char 00E3FA F1 [10] 661 pop af 00E3FB C9 [10] 662 ret 663 ; unchecked data source 00E3FC 00 664 .db 0x00 ;. 00E3FD 665 dev_fdd_wait_ready: 00E3FD C3 91 EF [10] 666 jp wait_fdd_ready 00E400 667 dev_monitor: 00E400 C3 60 E0 [10] 668 jp go_monitor 00E403 669 dev_serial_ready: 00E403 C3 10 EB [10] 670 jp com_rx_ready 00E406 671 dev_serial_read_byte: 00E406 C3 F6 EA [10] 672 jp com_read_byte 00E409 C3 EC EA [10] 673 jp com_write_byte 00E40C 674 dev_kbd_status: 00E40C C3 B1 E5 [10] 675 jp kbd_status_internal 00E40F 676 dev_kbd_inkey: 00E40F C3 62 E7 [10] 677 jp get_char 00E412 678 CRTOUT: 00E412 C3 AC E7 [10] 679 jp putch_internal 00E415 C3 B1 E5 [10] 680 jp kbd_status_internal 00E418 C3 62 E7 [10] 681 jp get_char 00E41B C3 AC E7 [10] 682 jp putch_internal 00E41E C3 B1 E5 [10] 683 jp kbd_status_internal 00E421 C3 62 E7 [10] 684 jp get_char 00E424 C3 AC E7 [10] 685 jp putch_internal 00E427 C3 62 E7 [10] 686 jp get_char 00E42A C3 F6 EA [10] 687 jp com_read_byte 00E42D C3 F6 EA [10] 688 jp com_read_byte 00E430 C3 AC E7 [10] 689 jp putch_internal 00E433 690 dev_serial_tx_ready: 00E433 C3 E3 EA [10] 691 jp com_tx_ready 00E436 692 dev_serial_write_byte: 00E436 C3 EC EA [10] 693 jp com_write_byte 00E439 694 dev_printer_write_byte: 00E439 C3 C2 EA [10] 695 jp lpt_write_byte 00E43C 696 unreferenced_09: 00E43C C3 C2 EA [10] 697 jp lpt_write_byte 00E43F 698 unreferenced_10: 00E43F 3E FF [ 7] 699 ld a,#0xff 00E441 C9 [10] 700 ret 00E442 701 unreferenced_11: 00E442 00 [ 4] 702 nop 00E443 AF [ 4] 703 xor a,a 00E444 C9 [10] 704 ret 00E445 705 m_e445: 00E445 C3 B5 EA [10] 706 jp lpt_busy 00E448 00 [ 4] 707 nop 00E449 AF [ 4] 708 xor a,a 00E44A C9 [10] 709 ret 00E44B C3 9D E5 [10] 710 jp kbd_buffer_clear_beep 00E44E C3 A3 E5 [10] 711 jp kbd_buffer_clear 00E451 C3 7B E6 [10] 712 jp delay 00E454 C3 9E EA [10] 713 jp buzzer_off 00E457 C3 96 EA [10] 714 jp buzzer_on 00E45A C3 EA E1 [10] 715 jp m_e1ea 00E45D C3 15 F1 [10] 716 jp m_f115 00E460 717 vertical_display0: 00E460 18 718 .db 0x18 ;. 00E461 719 vertical_display1: 00E461 18 720 .db 0x18 ;. 00E462 721 column_count: 00E462 50 722 .db 0x50 ;P 723 ; unchecked data source 00E463 00 724 .db 0x00 ;. 00E464 725 vertical_display2: 00E464 18 726 .db 0x18 ;. 00E465 727 vertical_display3: 00E465 18 728 .db 0x18 ;. 00E466 729 printed_char: 00E466 30 730 .db 0x30 ;0 00E467 731 attrib_color: 00E467 07 732 .db 0x07 ;. 00E468 733 cfg10_settings: 00E468 00 734 .db 0x00 ;. 00E469 735 cfg20_settings: 00E469 00 736 .db 0x00 ;. 00E46A 737 cfg_esc_screen_drv: 00E46A 05 738 .db 0x05 ;. 739 ; unchecked data source 00E46B 00 D5 740 .db 0x00,0xd5 ;.U 00E46D 741 cursor_row: 00E46D 00 742 .db 0x00 ;. 00E46E 743 cursor_column: 00E46E 00 744 .db 0x00 ;. 00E46F 745 led_status: 00E46F 00 746 .db 0x00 ;. 00E470 747 cursor_start: 00E470 00 748 .db 0x00 ;. 00E471 749 kbd_debounce_cnt: 00E471 00 750 .db 0x00 ;. 00E472 751 kbd_matrix_buffer: 00E472 00 00 00 00 00 00 00 752 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E47A 00 00 00 00 753 .db 0x00,0x00,0x00,0x00 ;.... 00E47E 754 kbd_matrix_buffer2: 00E47E 00 00 00 00 00 00 00 755 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E486 00 00 00 00 756 .db 0x00,0x00,0x00,0x00 ;.... 757 ; unchecked data source 00E48A 00 758 .db 0x00 ;. 00E48B 759 kbd_modifiers: 00E48B 00 760 .db 0x00 ;. 761 ; unchecked data source 00E48C 00 00 762 .db 0x00,0x00 ;.. 00E48E 763 kbd_position: 00E48E 00 764 .db 0x00 ;. 00E48F 765 kbd_ascii: 00E48F 00 766 .db 0x00 ;. 00E490 767 cursor_abs: 00E490 00 00 768 .db 0x00,0x00 ;.. 00E492 769 cursor_abs_color: 00E492 00 00 770 .db 0x00,0x00 ;.. 00E494 771 rows_buffer: 00E494 00 00 772 .db 0x00,0x00 ;.. 773 ; unchecked data source 00E496 00 00 774 .db 0x00,0x00 ;.. 00E498 775 key_code: 00E498 00 776 .db 0x00 ;. 00E499 777 color_attribute: 00E499 00 778 .db 0x00 ;. 779 ; unchecked data source 00E49A 00 00 780 .db 0x00,0x00 ;.. 00E49C 781 param_word: 00E49C 00 00 782 .db 0x00,0x00 ;.. 00E49E 783 param_1: 00E49E 00 00 784 .db 0x00,0x00 ;.. 00E4A0 785 param_2: 00E4A0 00 00 786 .db 0x00,0x00 ;.. 00E4A2 787 param_3: 00E4A2 00 00 788 .db 0x00,0x00 ;.. 00E4A4 789 max_address: 00E4A4 00 00 790 .db 0x00,0x00 ;.. 791 ; unchecked data source 00E4A6 00 00 00 00 00 00 00 792 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E4AE 00 00 00 00 00 00 00 793 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E4B6 794 printer_protocol_flag: 00E4B6 00 795 .db 0x00 ;. 796 ; unchecked data source 00E4B7 00 00 00 00 00 00 00 797 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E4BF 00 00 00 00 00 00 00 798 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;....... 00E4C6 799 save_stack: 00E4C6 00 00 800 .db 0x00,0x00 ;.. 801 ; unchecked data source 00E4C8 00 00 00 00 00 00 00 802 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00E4D0 803 os_patch: 00E4D0 00 804 .db 0x00 ;. 805 ; unchecked data source 00E4D1 00 806 .db 0x00 ;. 00E4D2 807 beep_delay: 00E4D2 00 80 808 .db 0x00,0x80 ;.. 00E4D4 809 unreferenced_03: 00E4D4 C3 09 EA [10] 810 jp wait_vsync 00E4D7 811 unreferenced_04: 00E4D7 C3 16 EA [10] 812 jp is_vsync 00E4DA 813 unreferenced_05: 00E4DA C3 27 EA [10] 814 jp wait_flicker_free_save_A 00E4DD 815 kbd_table_lookup: 00E4DD 30 31 32 33 34 35 36 816 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00E4E5 38 39 2E FF 2B 2D 3D 817 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00E4ED FF 61 62 63 64 65 66 818 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00E4F5 68 69 6A 6B 6C 6D 6E 819 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00E4FD 70 71 72 73 74 75 76 820 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00E505 78 79 7A FF FF FF FF 821 .db 0x78,0x79,0x7a,0xff,0xff,0xff,0xff,0xff ;xyz..... FF 00E50D 30 31 32 33 34 35 36 822 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00E515 38 39 2D 5E 40 5B 5D 823 .db 0x38,0x39,0x2d,0x5e,0x40,0x5b,0x5d,0x3a ;89-^@[]: 3A 00E51D FF FF 20 5C 2C 2E 2F 824 .db 0xff,0xff,0x20,0x5c,0x2c,0x2e,0x2f,0x3b ;.. \,./; 3B 00E525 1F 1C 1D 1E 9B FF 7F 825 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00E52D FF 7F FF 09 0D DF 0B 826 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00E535 FF FF 86 85 84 83 82 827 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00E53D E4 E2 EB E3 E8 E6 E9 828 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00E545 EA E1 E5 FF 2A 2F E7 829 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00E54D FF 41 42 43 44 45 46 830 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00E555 48 49 4A 4B 4C 4D 4E 831 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00E55D 50 51 52 53 54 55 56 832 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00E565 58 59 5A FF FF FF FF 833 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00E56D 5F 21 22 23 24 25 26 834 .db 0x5f,0x21,0x22,0x23,0x24,0x25,0x26,0x27 ;_!"#$%&' 27 00E575 28 29 3D 7E 60 7B 7D 835 .db 0x28,0x29,0x3d,0x7e,0x60,0x7b,0x7d,0x2a ;()=~`{}* 2A 00E57D FF FF 20 7C 3C 3E 3F 836 .db 0xff,0xff,0x20,0x7c,0x3c,0x3e,0x3f,0x2b ;.. |<>?+ 2B 00E585 EC EF EE ED 9B FF 7F 837 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00E58D FF 12 FF 09 0D DF 0C 838 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00E595 FF FF 8C 8B 8A 89 88 839 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00E59D 840 kbd_buffer_clear_beep: 00E59D CD 7E EA [17] 841 call chr_beep 00E5A0 CD 78 EE [17] 842 call m_ee78 00E5A3 843 kbd_buffer_clear: 00E5A3 21 71 E4 [10] 844 ld hl,#kbd_debounce_cnt 00E5A6 11 72 E4 [10] 845 ld de,#kbd_matrix_buffer 00E5A9 01 60 00 [10] 846 ld bc,#kbd_table_int_size 00E5AC 36 00 [10] 847 ld (hl),#0 00E5AE ED B0 [21] 848 ldir 00E5B0 C9 [10] 849 ret 00E5B1 850 kbd_status_internal: 00E5B1 E5 [11] 851 push hl 00E5B2 D5 [11] 852 push de 00E5B3 C5 [11] 853 push bc 00E5B4 3A 8A E4 [13] 854 ld a,(0xe48a) 00E5B7 FE 80 [ 7] 855 cp a,#0x80 00E5B9 28 26 [12] 856 jr z,m_e5e1 00E5BB FE 88 [ 7] 857 cp a,#0x88 00E5BD 28 22 [12] 858 jr z,m_e5e1 00E5BF 21 7E E4 [10] 859 ld hl,#kbd_matrix_buffer2 00E5C2 CD 6E E6 [17] 860 call kbd_copy_state_hl 00E5C5 21 7E E4 [10] 861 ld hl,#kbd_matrix_buffer2 00E5C8 06 0C [ 7] 862 ld b,#KBD_COLUMNS 00E5CA 863 loop_find_first_key: 00E5CA 7E [ 7] 864 ld a,(hl) 00E5CB B7 [ 4] 865 or a,a 00E5CC 20 07 [12] 866 jr nz,kbd_key_found 00E5CE 05 [ 4] 867 dec b 00E5CF CA 47 E6 [10] 868 jp z,m_e647 00E5D2 23 [ 6] 869 inc hl 00E5D3 18 F5 [12] 870 jr loop_find_first_key 00E5D5 871 kbd_key_found: 00E5D5 CD E7 E5 [17] 872 call m_e5e7 00E5D8 3A 8A E4 [13] 873 ld a,(0xe48a) 00E5DB FE 80 [ 7] 874 cp a,#0x80 00E5DD 3E 00 [ 7] 875 ld a,#0x00 00E5DF 20 02 [12] 876 jr nz,m_e5e3 00E5E1 877 m_e5e1: 00E5E1 3E FF [ 7] 878 ld a,#0xff 00E5E3 879 m_e5e3: 00E5E3 C1 [10] 880 pop bc 00E5E4 D1 [10] 881 pop de 00E5E5 E1 [10] 882 pop hl 00E5E6 C9 [10] 883 ret 00E5E7 884 m_e5e7: 00E5E7 E5 [11] 885 push hl 00E5E8 D5 [11] 886 push de 00E5E9 C5 [11] 887 push bc 00E5EA 21 DC 05 [10] 888 ld hl,#0x05dc 00E5ED CD 7B E6 [17] 889 call delay 00E5F0 21 72 E4 [10] 890 ld hl,#kbd_matrix_buffer 00E5F3 CD 6E E6 [17] 891 call kbd_copy_state_hl 00E5F6 21 72 E4 [10] 892 ld hl,#kbd_matrix_buffer 00E5F9 11 7E E4 [10] 893 ld de,#kbd_matrix_buffer2 00E5FC 06 0C [ 7] 894 ld b,#kbd_matrix_buffer_size 00E5FE 895 cmp_kbd_entry: 00E5FE 1A [ 7] 896 ld a,(de) 00E5FF BE [ 7] 897 cp a,(hl) 00E600 20 54 [12] 898 jr nz,m_e656 00E602 05 [ 4] 899 dec b 00E603 28 04 [12] 900 jr z,scan_is_stable 00E605 23 [ 6] 901 inc hl 00E606 13 [ 6] 902 inc de 00E607 18 F5 [12] 903 jr cmp_kbd_entry 00E609 904 scan_is_stable: 00E609 CD 82 E6 [17] 905 call m_e682 00E60C 3A 8A E4 [13] 906 ld a,(0xe48a) 00E60F FE 80 [ 7] 907 cp a,#0x80 00E611 20 38 [12] 908 jr nz,clear_kbd_modifiers 00E613 CD 2C E7 [17] 909 call m_e72c 00E616 3A 6F E4 [13] 910 ld a,(led_status) 00E619 CB 7F [ 8] 911 bit 7,a 00E61B 20 32 [12] 912 jr nz,m_e64f 00E61D 3A 8F E4 [13] 913 ld a,(kbd_ascii) 00E620 FE FF [ 7] 914 cp a,#0xff 00E622 28 2B [12] 915 jr z,m_e64f 00E624 B7 [ 4] 916 or a,a 00E625 28 28 [12] 917 jr z,m_e64f 00E627 CD 1A E7 [17] 918 call modify_if_graphic_B 00E62A 3A 98 E4 [13] 919 ld a,(key_code) 00E62D B8 [ 4] 920 cp a,b 00E62E 20 2F [12] 921 jr nz,set_kbd_debounce_cnt 00E630 3A 71 E4 [13] 922 ld a,(kbd_debounce_cnt) 00E633 B7 [ 4] 923 or a,a 00E634 20 0B [12] 924 jr nz,decrement_kbd_debounce_cnt 00E636 21 B8 0B [10] 925 ld hl,#0x0bb8 00E639 CD 7B E6 [17] 926 call delay 00E63C 18 26 [12] 927 jr m_e664 928 ; unchecked data source 00E63E AF 18 12 929 .db 0xaf,0x18,0x12 ;/.. 00E641 930 decrement_kbd_debounce_cnt: 00E641 3D [ 4] 931 dec a 00E642 32 71 E4 [13] 932 ld (kbd_debounce_cnt),a 00E645 18 0F [12] 933 jr m_e656 00E647 934 m_e647: 00E647 AF [ 4] 935 xor a,a 00E648 32 C9 E4 [13] 936 ld (0xe4c9),a 00E64B 937 clear_kbd_modifiers: 00E64B AF [ 4] 938 xor a,a 00E64C 32 8B E4 [13] 939 ld (kbd_modifiers),a 00E64F 940 m_e64f: 00E64F AF [ 4] 941 xor a,a 00E650 32 98 E4 [13] 942 ld (key_code),a 00E653 32 71 E4 [13] 943 ld (kbd_debounce_cnt),a 00E656 944 m_e656: 00E656 AF [ 4] 945 xor a,a 00E657 32 8A E4 [13] 946 ld (0xe48a),a 00E65A 32 8F E4 [13] 947 ld (kbd_ascii),a 00E65D 18 0B [12] 948 jr m_e66a 00E65F 949 set_kbd_debounce_cnt: 00E65F 3E 20 [ 7] 950 ld a,#32 00E661 32 71 E4 [13] 951 ld (kbd_debounce_cnt),a 00E664 952 m_e664: 00E664 3A 8F E4 [13] 953 ld a,(kbd_ascii) 00E667 32 98 E4 [13] 954 ld (key_code),a 00E66A 955 m_e66a: 00E66A C1 [10] 956 pop bc 00E66B D1 [10] 957 pop de 00E66C E1 [10] 958 pop hl 00E66D C9 [10] 959 ret 00E66E 960 kbd_copy_state_hl: 00E66E 0E 20 [ 7] 961 ld c,#STATUS_KBD 00E670 06 0C [ 7] 962 ld b,#KBD_COLUMNS 00E672 963 kbd_scan_columns: 00E672 ED 78 [12] 964 in a,(c) 00E674 77 [ 7] 965 ld (hl),a 00E675 23 [ 6] 966 inc hl 00E676 0C [ 4] 967 inc c 00E677 05 [ 4] 968 dec b 00E678 20 F8 [12] 969 jr nz,kbd_scan_columns 00E67A C9 [10] 970 ret 00E67B 971 delay: 00E67B 00 [ 4] 972 nop 00E67C 2B [ 6] 973 dec hl 00E67D 7C [ 4] 974 ld a,h 00E67E B5 [ 4] 975 or a,l 00E67F 20 FA [12] 976 jr nz,delay 00E681 C9 [10] 977 ret 00E682 978 m_e682: 00E682 DD 21 7E E4 [14] 979 ld ix,#kbd_matrix_buffer2 00E686 AF [ 4] 980 xor a,a 00E687 4F [ 4] 981 ld c,a 00E688 5F [ 4] 982 ld e,a 00E689 32 8A E4 [13] 983 ld (0xe48a),a 00E68C 984 kbd_buffer_check_colum: 00E68C DD 7E 00 [19] 985 ld a,0(ix) 00E68F B7 [ 4] 986 or a,a 00E690 20 0B [12] 987 jr nz,m_e69d 00E692 79 [ 4] 988 ld a,c 00E693 C6 08 [ 7] 989 add a,#0x08 00E695 4F [ 4] 990 ld c,a 00E696 991 m_e696: 00E696 FE 60 [ 7] 992 cp a,#kbd_table_int_size 00E698 C8 [11] 993 ret z 00E699 DD 23 [10] 994 inc ix 00E69B 18 EF [12] 995 jr kbd_buffer_check_colum 00E69D 996 m_e69d: 00E69D 16 08 [ 7] 997 ld d,#0x08 00E69F 67 [ 4] 998 ld h,a 00E6A0 999 m_e6a0: 00E6A0 0C [ 4] 1000 inc c 00E6A1 7C [ 4] 1001 ld a,h 00E6A2 B7 [ 4] 1002 or a,a 00E6A3 CB 3F [ 8] 1003 srl a 00E6A5 67 [ 4] 1004 ld h,a 00E6A6 38 06 [12] 1005 jr c,m_e6ae 00E6A8 1006 m_e6a8: 00E6A8 15 [ 4] 1007 dec d 00E6A9 20 F5 [12] 1008 jr nz,m_e6a0 00E6AB 79 [ 4] 1009 ld a,c 00E6AC 18 E8 [12] 1010 jr m_e696 00E6AE 1011 m_e6ae: 00E6AE 79 [ 4] 1012 ld a,c 00E6AF FE 4F [ 7] 1013 cp a,#KBD_POSITION_CTRL 00E6B1 28 21 [12] 1014 jr z,m_e6d4 00E6B3 FE 53 [ 7] 1015 cp a,#KBD_POSITION_SHIFT 00E6B5 28 2B [12] 1016 jr z,set_kbd_shift_lock 00E6B7 FE 4E [ 7] 1017 cp a,#KBD_POSITION_SHIFT_LOCK 00E6B9 28 31 [12] 1018 jr z,m_e6ec 00E6BB FE 4D [ 7] 1019 cp a,#KBD_POSITION_COMMAND 00E6BD 28 37 [12] 1020 jr z,m_e6f6 00E6BF FE 56 [ 7] 1021 cp a,#KBD_POSITION_GRAPH 00E6C1 28 3C [12] 1022 jr z,m_e6ff 00E6C3 1023 m_e6c3: 00E6C3 7B [ 4] 1024 ld a,e 00E6C4 B7 [ 4] 1025 or a,a 00E6C5 20 E1 [12] 1026 jr nz,m_e6a8 00E6C7 1E 01 [ 7] 1027 ld e,#0x01 00E6C9 79 [ 4] 1028 ld a,c 00E6CA 32 8E E4 [13] 1029 ld (kbd_position),a 00E6CD 3E 80 [ 7] 1030 ld a,#0x80 00E6CF 32 8A E4 [13] 1031 ld (0xe48a),a 00E6D2 18 D4 [12] 1032 jr m_e6a8 00E6D4 1033 m_e6d4: 00E6D4 3A 6A E4 [13] 1034 ld a,(cfg_esc_screen_drv) 00E6D7 CB 57 [ 8] 1035 bit 2,a ;_DRV_CTRL_INTERNAL==0 00E6D9 28 E8 [12] 1036 jr z,m_e6c3 00E6DB 3A 8B E4 [13] 1037 ld a,(kbd_modifiers) 00E6DE CB D7 [ 8] 1038 set 2,a ;STATUS_GLED=1 00E6E0 18 05 [12] 1039 jr set_kbd_modifiers 00E6E2 1040 set_kbd_shift_lock: 00E6E2 3A 8B E4 [13] 1041 ld a,(kbd_modifiers) 00E6E5 CB C7 [ 8] 1042 set 0,a ;STATUS_SLED=1 00E6E7 1043 set_kbd_modifiers: 00E6E7 32 8B E4 [13] 1044 ld (kbd_modifiers),a 00E6EA 18 BC [12] 1045 jr m_e6a8 00E6EC 1046 m_e6ec: 00E6EC CD 0F E7 [17] 1047 call m_e70f 00E6EF 20 B7 [12] 1048 jr nz,m_e6a8 00E6F1 CD BF E8 [17] 1049 call m_e8bf 00E6F4 18 B2 [12] 1050 jr m_e6a8 00E6F6 1051 m_e6f6: 00E6F6 3A 6A E4 [13] 1052 ld a,(cfg_esc_screen_drv) 00E6F9 CB 5F [ 8] 1053 bit 3,a 00E6FB 20 C6 [12] 1054 jr nz,m_e6c3 00E6FD 18 A9 [12] 1055 jr m_e6a8 00E6FF 1056 m_e6ff: 00E6FF CD 0F E7 [17] 1057 call m_e70f 00E702 20 A4 [12] 1058 jr nz,m_e6a8 00E704 CD A6 E8 [17] 1059 call toggle_gled 00E707 3A D0 E4 [13] 1060 ld a,(os_patch) 00E70A B7 [ 4] 1061 or a,a 00E70B 28 B6 [12] 1062 jr z,m_e6c3 00E70D 18 99 [12] 1063 jr m_e6a8 00E70F 1064 m_e70f: 00E70F 3A C9 E4 [13] 1065 ld a,(0xe4c9) 00E712 B7 [ 4] 1066 or a,a 00E713 C0 [11] 1067 ret nz 00E714 3E 01 [ 7] 1068 ld a,#0x01 00E716 32 C9 E4 [13] 1069 ld (0xe4c9),a 00E719 C9 [10] 1070 ret 00E71A 1071 modify_if_graphic_B: 00E71A 3A 8B E4 [13] 1072 ld a,(kbd_modifiers) 00E71D CB 57 [ 8] 1073 bit 2,a ;STATUS_GLED==0 00E71F E5 [11] 1074 push hl 00E720 21 8F E4 [10] 1075 ld hl,#kbd_ascii 00E723 28 04 [12] 1076 jr z,m_e729 00E725 CB B6 [15] 1077 res 6,(hl) 00E727 CB AE [15] 1078 res 5,(hl) 00E729 1079 m_e729: 00E729 46 [ 7] 1080 ld b,(hl) 00E72A E1 [10] 1081 pop hl 00E72B C9 [10] 1082 ret 00E72C 1083 m_e72c: 00E72C 3A 8B E4 [13] 1084 ld a,(kbd_modifiers) 00E72F E6 01 [ 7] 1085 and a,#MODIFIER_SHIFT 00E731 21 DD E4 [10] 1086 ld hl,#kbd_table_lookup 00E734 28 03 [12] 1087 jr z,m_e739 00E736 21 3D E5 [10] 1088 ld hl,#kbd_table_lookup+0x60 00E739 1089 m_e739: 00E739 16 00 [ 7] 1090 ld d,#HIGH_ZERO 00E73B 3A 8E E4 [13] 1091 ld a,(kbd_position) 00E73E 5F [ 4] 1092 ld e,a 00E73F 19 [11] 1093 add hl,de 00E740 2B [ 6] 1094 dec hl 00E741 7E [ 7] 1095 ld a,(hl) 00E742 32 8F E4 [13] 1096 ld (kbd_ascii),a 00E745 3A 6F E4 [13] 1097 ld a,(led_status) 00E748 CB 47 [ 8] 1098 bit 0,a ;STATUS_SLED==0 00E74A C8 [11] 1099 ret z 00E74B 7E [ 7] 1100 ld a,(hl) 00E74C FE 61 [ 7] 1101 cp a,#0x61 00E74E D8 [11] 1102 ret c 00E74F 1103 opcode_compare: 00E74F FE 7B [ 7] 1104 cp a,#0x7b 00E751 D0 [11] 1105 ret nc 00E752 E6 5F [ 7] 1106 and a,#0x5f 00E754 32 8F E4 [13] 1107 ld (kbd_ascii),a 00E757 C9 [10] 1108 ret 00E758 1109 unreferenced: 00E758 E5 [11] 1110 push hl 00E759 21 6F E4 [10] 1111 ld hl,#led_status 00E75C CB BE [15] 1112 res 7,(hl) 00E75E E1 [10] 1113 pop hl 00E75F C3 9E EA [10] 1114 jp buzzer_off 00E762 1115 get_char: 00E762 E5 [11] 1116 push hl 00E763 D5 [11] 1117 push de 00E764 C5 [11] 1118 push bc 00E765 1119 m_e765: 00E765 3A 8A E4 [13] 1120 ld a,(0xe48a) 00E768 FE 80 [ 7] 1121 cp a,#0x80 00E76A 28 0E [12] 1122 jr z,m_e77a 00E76C FE 88 [ 7] 1123 cp a,#0x88 00E76E 3E 00 [ 7] 1124 ld a,#0x00 00E770 32 8A E4 [13] 1125 ld (0xe48a),a 00E773 28 2D [12] 1126 jr z,m_e7a2 00E775 CD B1 E5 [17] 1127 call kbd_status_internal 00E778 18 EB [12] 1128 jr m_e765 00E77A 1129 m_e77a: 00E77A AF [ 4] 1130 xor a,a 00E77B 32 8A E4 [13] 1131 ld (0xe48a),a 00E77E 3A 8F E4 [13] 1132 ld a,(kbd_ascii) 00E781 E6 7F [ 7] 1133 and a,#0x7f 00E783 FE 20 [ 7] 1134 cp a,#0x20 00E785 38 0D [12] 1135 jr c,m_e794 00E787 3A D0 E4 [13] 1136 ld a,(os_patch) 00E78A B7 [ 4] 1137 or a,a 00E78B 28 07 [12] 1138 jr z,m_e794 00E78D 3A 6F E4 [13] 1139 ld a,(led_status) 00E790 CB 57 [ 8] 1140 bit 2,a ;STATUS_GLED==0 00E792 20 05 [12] 1141 jr nz,m_e799 00E794 1142 m_e794: 00E794 3A 8F E4 [13] 1143 ld a,(kbd_ascii) 00E797 18 0F [12] 1144 jr m_e7a8 00E799 1145 m_e799: 00E799 3E 88 [ 7] 1146 ld a,#0x88 00E79B 32 8A E4 [13] 1147 ld (0xe48a),a 00E79E 3E DF [ 7] 1148 ld a,#0xdf 00E7A0 18 06 [12] 1149 jr m_e7a8 00E7A2 1150 m_e7a2: 00E7A2 3A 8F E4 [13] 1151 ld a,(kbd_ascii) 00E7A5 CD 28 E8 [17] 1152 call m_e828 00E7A8 1153 m_e7a8: 00E7A8 C1 [10] 1154 pop bc 00E7A9 D1 [10] 1155 pop de 00E7AA E1 [10] 1156 pop hl 00E7AB C9 [10] 1157 ret 00E7AC 1158 putch_internal: 00E7AC E5 [11] 1159 push hl 00E7AD D5 [11] 1160 push de 00E7AE C5 [11] 1161 push bc 00E7AF 79 [ 4] 1162 ld a,c 00E7B0 32 66 E4 [13] 1163 ld (printed_char),a 00E7B3 3A 8C E4 [13] 1164 ld a,(0xe48c) 00E7B6 B7 [ 4] 1165 or a,a 00E7B7 20 6A [12] 1166 jr nz,m_e823 00E7B9 3A D0 E4 [13] 1167 ld a,(os_patch) 00E7BC B7 [ 4] 1168 or a,a 00E7BD 28 30 [12] 1169 jr z,m_e7ef 00E7BF 3A C8 E4 [13] 1170 ld a,(0xe4c8) 00E7C2 B7 [ 4] 1171 or a,a 00E7C3 3A 66 E4 [13] 1172 ld a,(printed_char) 00E7C6 20 10 [12] 1173 jr nz,m_e7d8 00E7C8 FE DF [ 7] 1174 cp a,#0xdf 00E7CA 28 4B [12] 1175 jr z,m_e817 00E7CC 1176 m_e7cc: 00E7CC E6 7F [ 7] 1177 and a,#0x7f 00E7CE 28 0F [12] 1178 jr z,m_e7df 00E7D0 FE 7F [ 7] 1179 cp a,#0x7f 00E7D2 28 4A [12] 1180 jr z,m_e81e 00E7D4 FE 20 [ 7] 1181 cp a,#0x20 00E7D6 38 46 [12] 1182 jr c,m_e81e 00E7D8 1183 m_e7d8: 00E7D8 AF [ 4] 1184 xor a,a 00E7D9 32 C8 E4 [13] 1185 ld (0xe4c8),a 00E7DC 1186 m_e7dc: 00E7DC CD EC E8 [17] 1187 call m_e8ec 00E7DF 1188 m_e7df: 00E7DF C1 [10] 1189 pop bc 00E7E0 D1 [10] 1190 pop de 00E7E1 3A CB E4 [13] 1191 ld a,(0xe4cb) 00E7E4 B7 [ 4] 1192 or a,a 00E7E5 20 26 [12] 1193 jr nz,m_e80d 00E7E7 1194 m_e7e7: 00E7E7 3A 66 E4 [13] 1195 ld a,(printed_char) 00E7EA 32 6C E4 [13] 1196 ld (0xe46c),a 00E7ED E1 [10] 1197 pop hl 00E7EE C9 [10] 1198 ret 00E7EF 1199 m_e7ef: 00E7EF 3A 66 E4 [13] 1200 ld a,(printed_char) 00E7F2 47 [ 4] 1201 ld b,a 00E7F3 FE DF [ 7] 1202 cp a,#0xdf 00E7F5 28 11 [12] 1203 jr z,m_e808 00E7F7 3A C8 E4 [13] 1204 ld a,(0xe4c8) 00E7FA B7 [ 4] 1205 or a,a 00E7FB 78 [ 4] 1206 ld a,b 00E7FC 28 CE [12] 1207 jr z,m_e7cc 00E7FE CD 28 E8 [17] 1208 call m_e828 00E801 32 66 E4 [13] 1209 ld (printed_char),a 00E804 38 18 [12] 1210 jr c,m_e81e 00E806 18 D4 [12] 1211 jr m_e7dc 00E808 1212 m_e808: 00E808 CD D6 E8 [17] 1213 call m_e8d6 00E80B 18 D2 [12] 1214 jr m_e7df 00E80D 1215 m_e80d: 00E80D 2A CC E4 [16] 1216 ld hl,(0xe4cc) 00E810 EB [ 4] 1217 ex de,hl 00E811 AF [ 4] 1218 xor a,a 00E812 32 CB E4 [13] 1219 ld (0xe4cb),a 00E815 18 D0 [12] 1220 jr m_e7e7 00E817 1221 m_e817: 00E817 3E 01 [ 7] 1222 ld a,#0x01 00E819 32 C8 E4 [13] 1223 ld (0xe4c8),a 00E81C 18 C1 [12] 1224 jr m_e7df 00E81E 1225 m_e81e: 00E81E CD 3F E8 [17] 1226 call m_e83f 00E821 18 BC [12] 1227 jr m_e7df 00E823 1228 m_e823: 00E823 CD E3 EB [17] 1229 call m_ebe3 00E826 18 B7 [12] 1230 jr m_e7df 00E828 1231 m_e828: 00E828 FE 20 [ 7] 1232 cp a,#' ' 00E82A D8 [11] 1233 ret c 00E82B FE 60 [ 7] 1234 cp a,#0x60 00E82D 38 06 [12] 1235 jr c,m_e835 00E82F FE 80 [ 7] 1236 cp a,#0x80 00E831 D0 [11] 1237 ret nc 00E832 F6 80 [ 7] 1238 or a,#0x80 00E834 C9 [10] 1239 ret 00E835 1240 m_e835: 00E835 FE 40 [ 7] 1241 cp a,#0x40 00E837 38 03 [12] 1242 jr c,m_e83c 00E839 EE C0 [ 7] 1243 xor a,#0xc0 00E83B C9 [10] 1244 ret 00E83C 1245 m_e83c: 00E83C EE 20 [ 7] 1246 xor a,#0x20 00E83E C9 [10] 1247 ret 00E83F 1248 m_e83f: 00E83F 3A 66 E4 [13] 1249 ld a,(0xe466) 00E842 FE 1B [ 7] 1250 cp a,#VK_ESC 00E844 20 06 [12] 1251 jr nz,m_e84c 00E846 3E 01 [ 7] 1252 ld a,#0x01 00E848 32 8C E4 [13] 1253 ld (0xe48c),a 00E84B C9 [10] 1254 ret 00E84C 1255 m_e84c: 00E84C 4F [ 4] 1256 ld c,a 00E84D 21 55 E8 [10] 1257 ld hl,#special_characters 00E850 CD 1F EC [17] 1258 call map_C_to_PTR 00E853 C8 [11] 1259 ret z 00E854 E9 [ 4] 1260 jp (hl) 00E855 1261 special_characters: 00E855 03 1262 .db 0x03 ;. 00E856 91 E8 1263 .dw chr_03 00E858 1264 asc_07: 00E858 07 1265 .db 0x07 ;. 00E859 7E EA 1266 .dw chr_beep 00E85B 1267 asc_08: 00E85B 08 1268 .db 0x08 ;. 00E85C 74 EA 1269 .dw chr_backspace 00E85E 1270 asc_0a: 00E85E 0A 1271 .db 0x0a ;. 00E85F 80 E8 1272 .dw chr_line_feed 00E861 1273 asc_0c: 00E861 0C 1274 .db 0x0c ;. 00E862 E8 E9 1275 .dw chr_clear_screen 00E864 1276 asc_0d: 00E864 0D 1277 .db 0x0d ;. 00E865 09 E9 1278 .dw chr_carrige_return 00E867 1279 asc_12: 00E867 12 1280 .db 0x12 ;. 00E868 94 E8 1281 .dw chr_12 00E86A 1282 asc_1c: 00E86A 1C 1283 .db 0x1c ;. 00E86B 50 EA 1284 .dw chr_cursor_right 00E86D 1285 asc_1d: 00E86D 1D 1286 .db 0x1d ;. 00E86E 35 EA 1287 .dw chr_cursor_left 00E870 1288 asc_1e: 00E870 1E 1289 .db 0x1e ;. 00E871 44 EA 1290 .dw chr_cursor_up 00E873 1291 asc_1f: 00E873 1F 1292 .db 0x1f ;. 00E874 5F EA 1293 .dw chr_cursor_down 00E876 1294 asc_7f: 00E876 7F 1295 .db 0x7f ;. 00E877 97 E8 1296 .dw chr_7f 00E879 1297 asc_99: 00E879 99 1298 .db 0x99 ;. 00E87A A0 E8 1299 .dw chr_inverse_on 00E87C 1300 asc_9a: 00E87C 9A 1301 .db 0x9a ;. 00E87D 9A E8 1302 .dw chr_inverse_off 00E87F 1303 special_characters_end: 00E87F 00 1304 .db 0x00 ;. 00E880 1305 chr_line_feed: 00E880 3A 6C E4 [13] 1306 ld a,(0xe46c) 00E883 FE 0D [ 7] 1307 cp a,#VK_ENTER 00E885 C8 [11] 1308 ret z 00E886 3A 6E E4 [13] 1309 ld a,(cursor_column) 00E889 F6 80 [ 7] 1310 or a,#0x80 00E88B 32 CA E4 [13] 1311 ld (0xe4ca),a 00E88E C3 09 E9 [10] 1312 jp chr_carrige_return 00E891 1313 chr_03: 00E891 C9 [10] 1314 ret 00E892 1315 chr_03_fill: 00E892 00 00 1316 .db 0x00,0x00 ;.. 00E894 1317 chr_12: 00E894 C9 [10] 1318 ret 00E895 1319 chr_12_fill: 00E895 00 00 1320 .db 0x00,0x00 ;.. 00E897 1321 chr_7f: 00E897 C9 [10] 1322 ret 00E898 1323 chr_7f_fill: 00E898 00 00 1324 .db 0x00,0x00 ;.. 00E89A 1325 chr_inverse_off: 00E89A 21 67 E4 [10] 1326 ld hl,#attrib_color 00E89D CB BE [15] 1327 res 7,(hl) ;_VRAM_ATTR_INVERS=0 00E89F C9 [10] 1328 ret 00E8A0 1329 chr_inverse_on: 00E8A0 21 67 E4 [10] 1330 ld hl,#attrib_color 00E8A3 CB FE [15] 1331 set 7,(hl) ;_VRAM_ATTR_INVERS=1 00E8A5 C9 [10] 1332 ret 00E8A6 1333 toggle_gled: 00E8A6 3A 6F E4 [13] 1334 ld a,(led_status) 00E8A9 EE 04 [ 7] 1335 xor a,#TOGGLE_GLED 00E8AB 1336 set_gled: 00E8AB 32 6F E4 [13] 1337 ld (led_status),a 00E8AE CB 57 [ 8] 1338 bit 2,a ;STATUS_GLED==0 00E8B0 21 69 E4 [10] 1339 ld hl,#cfg20_settings 00E8B3 28 06 [12] 1340 jr z,res_gled 00E8B5 CB E6 [15] 1341 set 4,(hl) ;GLED=1 00E8B7 1342 set_cfg20: 00E8B7 7E [ 7] 1343 ld a,(hl) 00E8B8 D3 20 [11] 1344 out (CFG20),a 00E8BA C9 [10] 1345 ret 00E8BB 1346 res_gled: 00E8BB CB A6 [15] 1347 res 4,(hl) ;GLED=0 00E8BD 18 F8 [12] 1348 jr set_cfg20 00E8BF 1349 m_e8bf: 00E8BF 3A 6F E4 [13] 1350 ld a,(led_status) 00E8C2 EE 01 [ 7] 1351 xor a,#TOGGLE_SLED 00E8C4 32 6F E4 [13] 1352 ld (led_status),a 00E8C7 CB 47 [ 8] 1353 bit 0,a ;STATUS_SLED==0 00E8C9 21 69 E4 [10] 1354 ld hl,#cfg20_settings 00E8CC 28 04 [12] 1355 jr z,res_sled 00E8CE CB EE [15] 1356 set 5,(hl) ;SLED=1 00E8D0 18 E5 [12] 1357 jr set_cfg20 00E8D2 1358 res_sled: 00E8D2 CB AE [15] 1359 res 5,(hl) ;SLED=0 00E8D4 18 E1 [12] 1360 jr set_cfg20 00E8D6 1361 m_e8d6: 00E8D6 3A C8 E4 [13] 1362 ld a,(0xe4c8) 00E8D9 EE 01 [ 7] 1363 xor a,#0x01 00E8DB 32 C8 E4 [13] 1364 ld (0xe4c8),a 00E8DE 3A 6F E4 [13] 1365 ld a,(led_status) 00E8E1 28 05 [12] 1366 jr z,m_e8e8 00E8E3 CB D7 [ 8] 1367 set 2,a ;STATUS_GLED=1 00E8E5 1368 tramp_set_gled: 00E8E5 C3 AB E8 [10] 1369 jp set_gled 00E8E8 1370 m_e8e8: 00E8E8 CB 97 [ 8] 1371 res 2,a ;STATUS_GLED=0 00E8EA 18 F9 [12] 1372 jr tramp_set_gled 00E8EC 1373 m_e8ec: 00E8EC CD B7 E9 [17] 1374 call set_cursor_abs 00E8EF 3A 66 E4 [13] 1375 ld a,(printed_char) 00E8F2 CD 27 EA [17] 1376 call wait_flicker_free_save_A 00E8F5 70 [ 7] 1377 ld (hl),b 00E8F6 3A 67 E4 [13] 1378 ld a,(attrib_color) 00E8F9 12 [ 7] 1379 ld (de),a 00E8FA 1380 m_e8fa: 00E8FA 3A 6E E4 [13] 1381 ld a,(cursor_column) 00E8FD 3C [ 4] 1382 inc a 00E8FE 32 6E E4 [13] 1383 ld (cursor_column),a 00E901 47 [ 4] 1384 ld b,a 00E902 3A 62 E4 [13] 1385 ld a,(column_count) 00E905 3D [ 4] 1386 dec a 00E906 B8 [ 4] 1387 cp a,b 00E907 30 28 [12] 1388 jr nc,crt_set_cursor 00E909 1389 chr_carrige_return: 00E909 3A 6D E4 [13] 1390 ld a,(cursor_row) 00E90C 3C [ 4] 1391 inc a 00E90D 32 6D E4 [13] 1392 ld (cursor_row),a 00E910 47 [ 4] 1393 ld b,a 00E911 3A 65 E4 [13] 1394 ld a,(0xe465) 00E914 B8 [ 4] 1395 cp a,b 00E915 28 33 [12] 1396 jr z,m_e94a 00E917 3A 60 E4 [13] 1397 ld a,(0xe460) 00E91A B8 [ 4] 1398 cp a,b 00E91B 28 46 [12] 1399 jr z,m_e963 00E91D DC FF E9 [17] 1400 call c,set_cursor_home 00E920 18 03 [12] 1401 jr m_e925 00E922 1402 m_e922: 00E922 CD CF ED [17] 1403 call erase_line 00E925 1404 m_e925: 00E925 3A CA E4 [13] 1405 ld a,(0xe4ca) 00E928 CB 7F [ 8] 1406 bit 7,a 00E92A 28 1B [12] 1407 jr z,m_e947 00E92C E6 0F [ 7] 1408 and a,#0x0f 00E92E 1409 m_e92e: 00E92E 32 6E E4 [13] 1410 ld (cursor_column),a 00E931 1411 crt_set_cursor: 00E931 CD CC E9 [17] 1412 call get_cursor_abs 00E934 3E 0E [ 7] 1413 ld a,#REG_14_CURSOR_H 00E936 D3 50 [11] 1414 out (CRT_REG),a 00E938 7C [ 4] 1415 ld a,h 00E939 D3 51 [11] 1416 out (CRT_DATA),a 00E93B 3E 0F [ 7] 1417 ld a,#REG_14_CURSOR_L 00E93D D3 50 [11] 1418 out (CRT_REG),a 00E93F 7D [ 4] 1419 ld a,l 00E940 D3 51 [11] 1420 out (CRT_DATA),a 00E942 AF [ 4] 1421 xor a,a 00E943 32 CA E4 [13] 1422 ld (0xe4ca),a 00E946 C9 [10] 1423 ret 00E947 1424 m_e947: 00E947 AF [ 4] 1425 xor a,a 00E948 18 E4 [12] 1426 jr m_e92e 00E94A 1427 m_e94a: 00E94A 3A 63 E4 [13] 1428 ld a,(0xe463) 00E94D CD 8C E9 [17] 1429 call crt_set_cursor_at_row_start 00E950 28 D3 [12] 1430 jr z,m_e925 00E952 3A 64 E4 [13] 1431 ld a,(0xe464) 00E955 FE 01 [ 7] 1432 cp a,#0x01 00E957 C4 99 E9 [17] 1433 call nz,m_e999 00E95A 3A 65 E4 [13] 1434 ld a,(0xe465) 00E95D 1435 m_e95d: 00E95D 3D [ 4] 1436 dec a 00E95E 32 6D E4 [13] 1437 ld (cursor_row),a 00E961 18 BF [12] 1438 jr m_e922 00E963 1439 m_e963: 00E963 3A 65 E4 [13] 1440 ld a,(0xe465) 00E966 CD 8C E9 [17] 1441 call crt_set_cursor_at_row_start 00E969 28 BA [12] 1442 jr z,m_e925 00E96B 3A 65 E4 [13] 1443 ld a,(0xe465) 00E96E 47 [ 4] 1444 ld b,a 00E96F 3A 60 E4 [13] 1445 ld a,(0xe460) 00E972 90 [ 4] 1446 sub a,b 00E973 FE 01 [ 7] 1447 cp a,#0x01 00E975 C4 99 E9 [17] 1448 call nz,m_e999 00E978 3A 60 E4 [13] 1449 ld a,(0xe460) 00E97B 18 E0 [12] 1450 jr m_e95d 00E97D 1451 m_e97d: 00E97D EB [ 4] 1452 ex de,hl 00E97E 3A 62 E4 [13] 1453 ld a,(column_count) 00E981 6F [ 4] 1454 ld l,a 00E982 26 00 [ 7] 1455 ld h,#0x00 00E984 19 [11] 1456 add hl,de 00E985 ED 4B 94 E4 [20] 1457 ld bc,(rows_buffer) 00E989 ED B0 [21] 1458 ldir 00E98B C9 [10] 1459 ret 00E98C 1460 crt_set_cursor_at_row_start: 00E98C 32 6D E4 [13] 1461 ld (cursor_row),a 00E98F AF [ 4] 1462 xor a,a 00E990 32 6E E4 [13] 1463 ld (cursor_column),a 00E993 3A 6A E4 [13] 1464 ld a,(cfg_esc_screen_drv) 00E996 E6 01 [ 7] 1465 and a,#0x01 00E998 C9 [10] 1466 ret 00E999 1467 m_e999: 00E999 3D [ 4] 1468 dec a 00E99A 21 00 00 [10] 1469 ld hl,#0 00E99D 16 00 [ 7] 1470 ld d,#HIGH_ZERO 00E99F CD DE E9 [17] 1471 call calc_column_offset 00E9A2 22 94 E4 [16] 1472 ld (rows_buffer),hl 00E9A5 CD B7 E9 [17] 1473 call set_cursor_abs 00E9A8 D5 [11] 1474 push de 00E9A9 CD 09 EA [17] 1475 call wait_vsync 00E9AC CD 7D E9 [17] 1476 call m_e97d 00E9AF E1 [10] 1477 pop hl 00E9B0 CD 7D E9 [17] 1478 call m_e97d 00E9B3 CD 16 EA [17] 1479 call is_vsync 00E9B6 C9 [10] 1480 ret 00E9B7 1481 set_cursor_abs: 00E9B7 CD CC E9 [17] 1482 call get_cursor_abs 00E9BA 11 00 F0 [10] 1483 ld de,#BWS 00E9BD 19 [11] 1484 add hl,de 00E9BE 22 90 E4 [16] 1485 ld (cursor_abs),hl 00E9C1 E5 [11] 1486 push hl 00E9C2 11 00 08 [10] 1487 ld de,#OFFSET_COLOR 00E9C5 19 [11] 1488 add hl,de 00E9C6 22 92 E4 [16] 1489 ld (cursor_abs_color),hl 00E9C9 EB [ 4] 1490 ex de,hl 00E9CA E1 [10] 1491 pop hl 00E9CB C9 [10] 1492 ret 00E9CC 1493 get_cursor_abs: 00E9CC 21 00 00 [10] 1494 ld hl,#0 00E9CF 16 00 [ 7] 1495 ld d,#HIGH_ZERO 00E9D1 3A 6D E4 [13] 1496 ld a,(cursor_row) 00E9D4 B7 [ 4] 1497 or a,a 00E9D5 C4 DE E9 [17] 1498 call nz,calc_column_offset 00E9D8 3A 6E E4 [13] 1499 ld a,(cursor_column) 00E9DB 5F [ 4] 1500 ld e,a 00E9DC 19 [11] 1501 add hl,de 00E9DD C9 [10] 1502 ret 00E9DE 1503 calc_column_offset: 00E9DE 47 [ 4] 1504 ld b,a 00E9DF 3A 62 E4 [13] 1505 ld a,(column_count) 00E9E2 5F [ 4] 1506 ld e,a 00E9E3 1507 add_column_size: 00E9E3 19 [11] 1508 add hl,de 00E9E4 05 [ 4] 1509 dec b 00E9E5 20 FC [12] 1510 jr nz,add_column_size 00E9E7 C9 [10] 1511 ret 00E9E8 1512 chr_clear_screen: 00E9E8 3E 07 [ 7] 1513 ld a,#0x07 00E9EA 32 67 E4 [13] 1514 ld (attrib_color),a 00E9ED 1515 m_e9ed: 00E9ED 32 00 F8 [13] 1516 ld (BWS+OFFSET_COLOR),a 00E9F0 21 00 F0 [10] 1517 ld hl,#BWS 00E9F3 0E 19 [ 7] 1518 ld c,#0x19 00E9F5 CD 09 EA [17] 1519 call wait_vsync 00E9F8 AF [ 4] 1520 xor a,a 00E9F9 CD A3 ED [17] 1521 call m_eda3 00E9FC CD 16 EA [17] 1522 call is_vsync 00E9FF 1523 set_cursor_home: 00E9FF AF [ 4] 1524 xor a,a 00EA00 32 6D E4 [13] 1525 ld (cursor_row),a 00EA03 32 6E E4 [13] 1526 ld (cursor_column),a 00EA06 C3 31 E9 [10] 1527 jp crt_set_cursor 00EA09 1528 wait_vsync: 00EA09 DB 30 [11] 1529 in a,(STATUS30) 00EA0B CB 4F [ 8] 1530 bit 1,a ;_CRT_VSYNC_PERIOD==0 00EA0D 28 FA [12] 1531 jr z,wait_vsync 00EA0F 1532 display_inhibit: 00EA0F 3A 68 E4 [13] 1533 ld a,(cfg10_settings) 00EA12 CB CF [ 8] 1534 set 1,a ;_DISPLAY_INHIBIT=1 00EA14 18 0B [12] 1535 jr display_status_set 00EA16 1536 is_vsync: 00EA16 DB 30 [11] 1537 in a,(STATUS30) 00EA18 CB 4F [ 8] 1538 bit 1,a ;_CRT_VSYNC_PERIOD==0 00EA1A 28 FA [12] 1539 jr z,is_vsync 00EA1C 1540 m_ea1c: 00EA1C 3A 68 E4 [13] 1541 ld a,(cfg10_settings) 00EA1F CB 8F [ 8] 1542 res 1,a ;_DISPLAY_INHIBIT=0 00EA21 1543 display_status_set: 00EA21 32 68 E4 [13] 1544 ld (cfg10_settings),a 00EA24 D3 10 [11] 1545 out (CFG10),a 00EA26 C9 [10] 1546 ret 00EA27 1547 wait_flicker_free_save_A: 00EA27 47 [ 4] 1548 ld b,a 00EA28 1549 wait_flicker_free: 00EA28 DB 10 [11] 1550 in a,(STATUS10) 00EA2A CB 7F [ 8] 1551 bit 7,a ;_CRT_DISPLAY==0 00EA2C 20 FA [12] 1552 jr nz,wait_flicker_free 00EA2E 1553 m_ea2e: 00EA2E DB 10 [11] 1554 in a,(STATUS10) 00EA30 CB 7F [ 8] 1555 bit 7,a ;_CRT_DISPLAY==0 00EA32 28 FA [12] 1556 jr z,m_ea2e 00EA34 C9 [10] 1557 ret 00EA35 1558 chr_cursor_left: 00EA35 3A 6E E4 [13] 1559 ld a,(cursor_column) 00EA38 3D [ 4] 1560 dec a 00EA39 FE FF [ 7] 1561 cp a,#-1 00EA3B 20 32 [12] 1562 jr nz,m_ea6f 00EA3D 3A 62 E4 [13] 1563 ld a,(column_count) 00EA40 3D [ 4] 1564 dec a 00EA41 32 6E E4 [13] 1565 ld (cursor_column),a 00EA44 1566 chr_cursor_up: 00EA44 3A 6D E4 [13] 1567 ld a,(cursor_row) 00EA47 3D [ 4] 1568 dec a 00EA48 FE FF [ 7] 1569 cp a,#-1 00EA4A 20 1D [12] 1570 jr nz,cursor_row_adjusted 00EA4C 3E 17 [ 7] 1571 ld a,#SCREEN_HEIGHT-1 00EA4E 18 19 [12] 1572 jr cursor_row_adjusted 00EA50 1573 chr_cursor_right: 00EA50 3A 62 E4 [13] 1574 ld a,(column_count) 00EA53 47 [ 4] 1575 ld b,a 00EA54 3A 6E E4 [13] 1576 ld a,(cursor_column) 00EA57 3C [ 4] 1577 inc a 00EA58 B8 [ 4] 1578 cp a,b 00EA59 38 14 [12] 1579 jr c,m_ea6f 00EA5B AF [ 4] 1580 xor a,a 00EA5C 32 6E E4 [13] 1581 ld (cursor_column),a 00EA5F 1582 chr_cursor_down: 00EA5F 06 18 [ 7] 1583 ld b,#SCREEN_HEIGHT 00EA61 3A 6D E4 [13] 1584 ld a,(cursor_row) 00EA64 3C [ 4] 1585 inc a 00EA65 B8 [ 4] 1586 cp a,b 00EA66 38 01 [12] 1587 jr c,cursor_row_adjusted 00EA68 AF [ 4] 1588 xor a,a 00EA69 1589 cursor_row_adjusted: 00EA69 32 6D E4 [13] 1590 ld (cursor_row),a 00EA6C 1591 m_ea6c: 00EA6C C3 31 E9 [10] 1592 jp crt_set_cursor 00EA6F 1593 m_ea6f: 00EA6F 32 6E E4 [13] 1594 ld (cursor_column),a 00EA72 18 F8 [12] 1595 jr m_ea6c 00EA74 1596 chr_backspace: 00EA74 CD B7 E9 [17] 1597 call set_cursor_abs 00EA77 CD 28 EA [17] 1598 call wait_flicker_free 00EA7A 36 20 [10] 1599 ld (hl),#' ' 00EA7C 18 B7 [12] 1600 jr chr_cursor_left 00EA7E 1601 chr_beep: 00EA7E E5 [11] 1602 push hl 00EA7F 21 68 E4 [10] 1603 ld hl,#cfg10_settings 00EA82 CB E6 [15] 1604 set 4,(hl) ;_BUZZER_ON=1 00EA84 7E [ 7] 1605 ld a,(hl) 00EA85 D3 10 [11] 1606 out (CFG10),a 00EA87 E5 [11] 1607 push hl 00EA88 2A D2 E4 [16] 1608 ld hl,(beep_delay) 00EA8B CD 7B E6 [17] 1609 call delay 00EA8E E1 [10] 1610 pop hl 00EA8F 1611 res_buzzer: 00EA8F CB A6 [15] 1612 res 4,(hl) ;_BUZZER_ON=0 00EA91 1613 out10_hl: 00EA91 7E [ 7] 1614 ld a,(hl) 00EA92 D3 10 [11] 1615 out (CFG10),a 00EA94 E1 [10] 1616 pop hl 00EA95 C9 [10] 1617 ret 00EA96 1618 buzzer_on: 00EA96 E5 [11] 1619 push hl 00EA97 21 68 E4 [10] 1620 ld hl,#cfg10_settings 00EA9A CB E6 [15] 1621 set 4,(hl) ;_BUZZER_ON=1 00EA9C 18 F3 [12] 1622 jr out10_hl 00EA9E 1623 buzzer_off: 00EA9E E5 [11] 1624 push hl 00EA9F 21 68 E4 [10] 1625 ld hl,#cfg10_settings 00EAA2 18 EB [12] 1626 jr res_buzzer 00EAA4 1627 chk_break: 00EAA4 DB 2A [11] 1628 in a,(STATUS_KBD+10) 00EAA6 B7 [ 4] 1629 or a,a 00EAA7 CB 7F [ 8] 1630 bit 7,a ;KBD_BREAK==0 00EAA9 C8 [11] 1631 ret z 00EAAA 3A D0 E4 [13] 1632 ld a,(os_patch) 00EAAD B7 [ 4] 1633 or a,a 00EAAE CA 00 00 [10] 1634 jp z,cold_start 00EAB1 1E 18 [ 7] 1635 ld e,#0x18 00EAB3 37 [ 4] 1636 scf 00EAB4 C9 [10] 1637 ret 00EAB5 1638 lpt_busy: 00EAB5 CD A4 EA [17] 1639 call chk_break 00EAB8 DB 30 [11] 1640 in a,(STATUS30) 00EABA CB 5F [ 8] 1641 bit 3,a ;_CEN_BUSY==0 00EABC 3E 00 [ 7] 1642 ld a,#0x00 00EABE C8 [11] 1643 ret z 00EABF 3E FF [ 7] 1644 ld a,#0xff 00EAC1 C9 [10] 1645 ret 00EAC2 1646 lpt_write_byte: 00EAC2 CD 45 E4 [17] 1647 call m_e445 00EAC5 D8 [11] 1648 ret c 00EAC6 20 FA [12] 1649 jr nz,lpt_write_byte 00EAC8 79 [ 4] 1650 ld a,c 00EAC9 D3 30 [11] 1651 out (CEN_DATA),a 00EACB 3A 69 E4 [13] 1652 ld a,(cfg20_settings) 00EACE CB D7 [ 8] 1653 set 2,a ;CEN_STROBE=1 00EAD0 D3 20 [11] 1654 out (CFG20),a 00EAD2 CB 97 [ 8] 1655 res 2,a ;CEN_STROBE=0 00EAD4 D3 20 [11] 1656 out (CFG20),a 00EAD6 1657 m_ead6: 00EAD6 DB 30 [11] 1658 in a,(STATUS30) 00EAD8 CB 57 [ 8] 1659 bit 2,a ;_CEN_ACKNOWLEDGE==0 00EADA 20 01 [12] 1660 jr nz,m_eadd 00EADC C9 [10] 1661 ret 00EADD 1662 m_eadd: 00EADD CD A4 EA [17] 1663 call chk_break 00EAE0 D8 [11] 1664 ret c 00EAE1 18 F3 [12] 1665 jr m_ead6 00EAE3 1666 com_tx_ready: 00EAE3 DB 41 [11] 1667 in a,(UART_STATUS) 00EAE5 CD 08 EB [17] 1668 call chk_tx_rdy 00EAE8 28 F9 [12] 1669 jr z,com_tx_ready 00EAEA 18 06 [12] 1670 jr uart_send_tx 00EAEC 1671 com_write_byte: 00EAEC CD FF EA [17] 1672 call chk_ready 00EAEF D8 [11] 1673 ret c 00EAF0 28 FA [12] 1674 jr z,com_write_byte 00EAF2 1675 uart_send_tx: 00EAF2 79 [ 4] 1676 ld a,c 00EAF3 D3 40 [11] 1677 out (UART_DATA),a 00EAF5 C9 [10] 1678 ret 00EAF6 1679 com_read_byte: 00EAF6 CD 10 EB [17] 1680 call com_rx_ready 00EAF9 D8 [11] 1681 ret c 00EAFA 28 FA [12] 1682 jr z,com_read_byte 00EAFC DB 40 [11] 1683 in a,(UART_DATA) 00EAFE C9 [10] 1684 ret 00EAFF 1685 chk_ready: 00EAFF CD A4 EA [17] 1686 call chk_break 00EB02 DB 41 [11] 1687 in a,(UART_STATUS) 00EB04 CB 7F [ 8] 1688 bit 7,a ;_DSR==0 00EB06 28 05 [12] 1689 jr z,m_eb0d 00EB08 1690 chk_tx_rdy: 00EB08 CB 47 [ 8] 1691 bit 0,a ;_TxRDY==0 00EB0A 3E FF [ 7] 1692 ld a,#0xff 00EB0C C0 [11] 1693 ret nz 00EB0D 1694 m_eb0d: 00EB0D 3E 00 [ 7] 1695 ld a,#0x00 00EB0F C9 [10] 1696 ret 00EB10 1697 com_rx_ready: 00EB10 CD A4 EA [17] 1698 call chk_break 00EB13 DB 41 [11] 1699 in a,(UART_STATUS) 00EB15 CB 4F [ 8] 1700 bit 1,a ;_RxRDY==0 00EB17 3E 00 [ 7] 1701 ld a,#NO 00EB19 C8 [11] 1702 ret z 00EB1A 3E FF [ 7] 1703 ld a,#YES 00EB1C C9 [10] 1704 ret 00EB1D 1705 unreferenced_06: 00EB1D 3E FE [ 7] 1706 ld a,#0xfe 00EB1F D3 41 [11] 1707 out (UART_CMD),a 00EB21 3E 37 [ 7] 1708 ld a,#0x37 00EB23 D3 41 [11] 1709 out (UART_CMD),a 00EB25 3A 68 E4 [13] 1710 ld a,(cfg10_settings) 00EB28 CB 97 [ 8] 1711 res 2,a ;CMT_RS232_SELECT=0 00EB2A 18 0D [12] 1712 jr set_cfg10 00EB2C 1713 init_serial: 00EB2C 3E FA [ 7] 1714 ld a,#0xfa 00EB2E D3 41 [11] 1715 out (UART_CMD),a 00EB30 3E 37 [ 7] 1716 ld a,#0x37 00EB32 D3 41 [11] 1717 out (UART_CMD),a 00EB34 3A 68 E4 [13] 1718 ld a,(cfg10_settings) 00EB37 CB D7 [ 8] 1719 set 2,a ;CMT_RS232_SELECT=1 00EB39 1720 set_cfg10: 00EB39 D3 10 [11] 1721 out (CFG10),a 00EB3B 32 68 E4 [13] 1722 ld (cfg10_settings),a 00EB3E C9 [10] 1723 ret 00EB3F 1724 unreferenced_07: 00EB3F 3A 68 E4 [13] 1725 ld a,(cfg10_settings) 00EB42 CB DF [ 8] 1726 set 3,a ;CMT_MOTOR_START=1 00EB44 1727 write_cfg10: 00EB44 D3 10 [11] 1728 out (CFG10),a 00EB46 32 68 E4 [13] 1729 ld (cfg10_settings),a 00EB49 C9 [10] 1730 ret 00EB4A 1731 unreferenced_08: 00EB4A 3A 68 E4 [13] 1732 ld a,(cfg10_settings) 00EB4D CB 9F [ 8] 1733 res 3,a ;CMT_MOTOR_START=0 00EB4F 18 F3 [12] 1734 jr write_cfg10 00EB51 1735 map_esc_list: 00EB51 09 1736 .db 0x09 ;. 00EB52 D1 EC 1737 .dw alternate_keyboard_table 00EB54 1738 map_ch_0c: 00EB54 0C 1739 .db 0x0c ;. 00EB55 13 EC 1740 .dw function_0c 00EB57 1741 map_ch_10: 00EB57 10 1742 .db 0x10 ;. 00EB58 13 EC 1743 .dw function_0c 00EB5A 1744 map_ch_11: 00EB5A 11 1745 .db 0x11 ;. 00EB5B FF E9 1746 .dw set_cursor_home 00EB5D 1747 map_ch_12: 00EB5D 12 1748 .db 0x12 ;. 00EB5E 91 EC 1749 .dw set_cursor_off 00EB60 1750 map_ch_13: 00EB60 13 1751 .db 0x13 ;. 00EB61 8D EC 1752 .dw set_cursor_on 00EB63 1753 map_ch_16: 00EB63 16 1754 .db 0x16 ;. 00EB64 13 EC 1755 .dw function_0c 00EB66 1756 map_ch_17: 00EB66 17 1757 .db 0x17 ;. 00EB67 A6 EC 1758 .dw get_cursor_pos 00EB69 1759 map_ch_18: 00EB69 18 1760 .db 0x18 ;. 00EB6A 6A ED 1761 .dw write_character 00EB6C 1762 map_ch_19: 00EB6C 19 1763 .db 0x19 ;. 00EB6D 99 ED 1764 .dw erase_rest_of_line 00EB6F 1765 map_ch_1a: 00EB6F 1A 1766 .db 0x1a ;. 00EB70 50 EA 1767 .dw chr_cursor_right 00EB72 1768 map_ch_1c: 00EB72 1C 1769 .db 0x1c ;. 00EB73 88 ED 1770 .dw read_character 00EB75 1771 map_ch_1d: 00EB75 1D 1772 .db 0x1d ;. 00EB76 13 EC 1773 .dw function_0c 00EB78 1774 map_ch_31: 00EB78 31 1775 .db 0x31 ;1 00EB79 18 EC 1776 .dw graphic_mode_on 00EB7B 1777 map_ch_41: 00EB7B 41 1778 .db 0x41 ;A 00EB7C 44 EA 1779 .dw chr_cursor_up 00EB7E 1780 map_ch_42: 00EB7E 42 1781 .db 0x42 ;B 00EB7F 5F EA 1782 .dw chr_cursor_down 00EB81 1783 map_ch_43: 00EB81 43 1784 .db 0x43 ;C 00EB82 50 EA 1785 .dw chr_cursor_right 00EB84 1786 map_ch_44: 00EB84 44 1787 .db 0x44 ;D 00EB85 35 EA 1788 .dw chr_cursor_left 00EB87 1789 map_ch_45: 00EB87 45 1790 .db 0x45 ;E 00EB88 E8 E9 1791 .dw chr_clear_screen 00EB8A 1792 map_ch_46: 00EB8A 46 1793 .db 0x46 ;F 00EB8B CF ED 1794 .dw erase_line 00EB8D 1795 map_ch_47: 00EB8D 47 1796 .db 0x47 ;G 00EB8E 13 EC 1797 .dw function_0c 00EB90 1798 map_ch_48: 00EB90 48 1799 .db 0x48 ;H 00EB91 FF E9 1800 .dw set_cursor_home 00EB93 1801 map_ch_49: 00EB93 49 1802 .db 0x49 ;I 00EB94 13 EC 1803 .dw function_0c 00EB96 1804 map_ch_4a: 00EB96 4A 1805 .db 0x4a ;J 00EB97 DD ED 1806 .dw function_4a 00EB99 1807 map_ch_4b: 00EB99 4B 1808 .db 0x4b ;K 00EB9A 99 ED 1809 .dw erase_rest_of_line 00EB9C 1810 map_ch_53: 00EB9C 53 1811 .db 0x53 ;S 00EB9D 13 EC 1812 .dw function_0c 00EB9F 1813 map_ch_54: 00EB9F 54 1814 .db 0x54 ;T 00EBA0 13 EC 1815 .dw function_0c 00EBA2 1816 map_ch_55: 00EBA2 55 1817 .db 0x55 ;U 00EBA3 13 EC 1818 .dw function_0c 00EBA5 1819 map_ch_56: 00EBA5 56 1820 .db 0x56 ;V 00EBA6 13 EC 1821 .dw function_0c 00EBA8 1822 map_ch_59: 00EBA8 59 1823 .db 0x59 ;Y 00EBA9 13 EC 1824 .dw function_0c 00EBAB 1825 map_ch_end: 00EBAB 00 1826 .db 0x00 ;. 00EBAC 1827 map_more_codes: 00EBAC 0C 1828 .db 0x0c ;. 00EBAD E1 EC 1829 .dw Esc0C_initialize_screen_driver 00EBAF 1830 map_ch_more1: 00EBAF 10 1831 .db 0x10 ;. 00EBB0 2A EE 1832 .dw function_more_0c1 00EBB2 1833 map_ch_more2: 00EBB2 16 1834 .db 0x16 ;. 00EBB3 35 ED 1835 .dw function_more_0c2 00EBB5 1836 map_ch_more3: 00EBB5 1D 1837 .db 0x1d ;. 00EBB6 5F EE 1838 .dw function_more_0c3 00EBB8 1839 map_ch_more4: 00EBB8 47 1840 .db 0x47 ;G 00EBB9 E7 ED 1841 .dw function_more_0c4 00EBBB 1842 map_ch_more5: 00EBBB 49 1843 .db 0x49 ;I 00EBBC FC ED 1844 .dw function_more_0c5 00EBBE 1845 map_ch_more6: 00EBBE 53 1846 .db 0x53 ;S 00EBBF 75 EE 1847 .dw Esc53_screen_width_set 00EBC1 1848 map_ch_more7: 00EBC1 54 1849 .db 0x54 ;T 00EBC2 34 EC 1850 .dw Esc55_color_attribute_set 00EBC4 1851 map_ch_more8: 00EBC4 55 1852 .db 0x55 ;U 00EBC5 34 EC 1853 .dw Esc55_color_attribute_set 00EBC7 1854 map_ch_more9: 00EBC7 56 1855 .db 0x56 ;V 00EBC8 6A EC 1856 .dw Esc56_screen_attribute_set 00EBCA 1857 map_ch_more10: 00EBCA 59 1858 .db 0x59 ;Y 00EBCB 1B ED 1859 .dw function_more_0c10 00EBCD 1860 map_ch_more11: 00EBCD 96 1861 .db 0x96 ;. 00EBCE 65 ED 1862 .dw function_more_0c11 00EBD0 1863 map_ch_more12: 00EBD0 9D 1864 .db 0x9d ;. 00EBD1 68 EE 1865 .dw function_more_0c12 00EBD3 1866 map_ch_more13: 00EBD3 B1 1867 .db 0xb1 ;1 00EBD4 ED EC 1868 .dw function_more_0c13 00EBD6 1869 map_ch_more14: 00EBD6 B2 1870 .db 0xb2 ;2 00EBD7 0E ED 1871 .dw function_more_0c14 00EBD9 1872 map_ch_more15: 00EBD9 D4 1873 .db 0xd4 ;T 00EBDA 3D EC 1874 .dw function_more_0c15 00EBDC 1875 map_ch_more16: 00EBDC D5 1876 .db 0xd5 ;U 00EBDD 3D EC 1877 .dw function_more_0c15 00EBDF 1878 map_ch_more17: 00EBDF D9 1879 .db 0xd9 ;Y 00EBE0 42 ED 1880 .dw function_more_0c17 00EBE2 1881 map_more_codes_end: 00EBE2 00 1882 .db 0x00 ;. 00EBE3 1883 m_ebe3: 00EBE3 FE 01 [ 7] 1884 cp a,#0x01 00EBE5 C2 03 EC [10] 1885 jp nz,m_ec03 00EBE8 AF [ 4] 1886 xor a,a 00EBE9 32 8C E4 [13] 1887 ld (0xe48c),a 00EBEC 32 CB E4 [13] 1888 ld (0xe4cb),a 00EBEF 79 [ 4] 1889 ld a,c 00EBF0 FE 61 [ 7] 1890 cp a,#0x61 00EBF2 38 07 [12] 1891 jr c,m_ebfb 00EBF4 FE 7B [ 7] 1892 cp a,#0x7b 00EBF6 30 03 [12] 1893 jr nc,m_ebfb 00EBF8 E6 5F [ 7] 1894 and a,#0x5f 00EBFA 4F [ 4] 1895 ld c,a 00EBFB 1896 m_ebfb: 00EBFB 21 51 EB [10] 1897 ld hl,#map_esc_list 00EBFE CD 1F EC [17] 1898 call map_C_to_PTR 00EC01 C8 [11] 1899 ret z 00EC02 E9 [ 4] 1900 jp (hl) 00EC03 1901 m_ec03: 00EC03 4F [ 4] 1902 ld c,a 00EC04 AF [ 4] 1903 xor a,a 00EC05 32 8C E4 [13] 1904 ld (0xe48c),a 00EC08 21 AC EB [10] 1905 ld hl,#map_more_codes 00EC0B CD 1F EC [17] 1906 call map_C_to_PTR 00EC0E C8 [11] 1907 ret z 00EC0F E9 [ 4] 1908 jp (hl) 00EC10 1909 m_ec10: 00EC10 AF [ 4] 1910 xor a,a 00EC11 18 01 [12] 1911 jr m_ec14 00EC13 1912 function_0c: 00EC13 79 [ 4] 1913 ld a,c 00EC14 1914 m_ec14: 00EC14 32 8C E4 [13] 1915 ld (0xe48c),a 00EC17 C9 [10] 1916 ret 00EC18 1917 graphic_mode_on: 00EC18 79 [ 4] 1918 ld a,c 00EC19 F6 80 [ 7] 1919 or a,#0x80 00EC1B 32 8C E4 [13] 1920 ld (0xe48c),a 00EC1E C9 [10] 1921 ret 00EC1F 1922 map_C_to_PTR: 00EC1F 7E [ 7] 1923 ld a,(hl) 00EC20 B7 [ 4] 1924 or a,a 00EC21 C8 [11] 1925 ret z 00EC22 B9 [ 4] 1926 cp a,c 00EC23 28 05 [12] 1927 jr z,key_found 00EC25 23 [ 6] 1928 inc hl 00EC26 23 [ 6] 1929 inc hl 00EC27 23 [ 6] 1930 inc hl 00EC28 18 F5 [12] 1931 jr map_C_to_PTR 00EC2A 1932 key_found: 00EC2A D5 [11] 1933 push de 00EC2B 23 [ 6] 1934 inc hl 00EC2C 5E [ 7] 1935 ld e,(hl) 00EC2D 23 [ 6] 1936 inc hl 00EC2E 56 [ 7] 1937 ld d,(hl) 00EC2F EB [ 4] 1938 ex de,hl 00EC30 D1 [10] 1939 pop de 00EC31 79 [ 4] 1940 ld a,c 00EC32 B7 [ 4] 1941 or a,a 00EC33 C9 [10] 1942 ret 00EC34 1943 Esc55_color_attribute_set: 00EC34 CD 83 EC [17] 1944 call chk_color_range 00EC37 D8 [11] 1945 ret c 00EC38 32 99 E4 [13] 1946 ld (color_attribute),a 00EC3B 18 DB [12] 1947 jr graphic_mode_on 00EC3D 1948 function_more_0c15: 00EC3D CD 83 EC [17] 1949 call chk_color_range 00EC40 D8 [11] 1950 ret c 00EC41 47 [ 4] 1951 ld b,a 00EC42 3A 6A E4 [13] 1952 ld a,(cfg_esc_screen_drv) 00EC45 CB 77 [ 8] 1953 bit 6,a ;_DRV_FG_BG_SAME_COLOR==0 00EC47 3A 99 E4 [13] 1954 ld a,(color_attribute) 00EC4A 20 02 [12] 1955 jr nz,set_fgbg_color 00EC4C B8 [ 4] 1956 cp a,b 00EC4D C8 [11] 1957 ret z 00EC4E 1958 set_fgbg_color: 00EC4E F5 [11] 1959 push af 00EC4F 78 [ 4] 1960 ld a,b 00EC50 07 [ 4] 1961 rlca 00EC51 07 [ 4] 1962 rlca 00EC52 07 [ 4] 1963 rlca 00EC53 47 [ 4] 1964 ld b,a 00EC54 F1 [10] 1965 pop af 00EC55 B0 [ 4] 1966 or a,b 00EC56 47 [ 4] 1967 ld b,a 00EC57 3A 67 E4 [13] 1968 ld a,(attrib_color) 00EC5A E6 C0 [ 7] 1969 and a,#VRAM_ATTR_MASK 00EC5C B0 [ 4] 1970 or a,b 00EC5D 32 67 E4 [13] 1971 ld (attrib_color),a 00EC60 79 [ 4] 1972 ld a,c 00EC61 FE D4 [ 7] 1973 cp a,#0xd4 00EC63 C0 [11] 1974 ret nz 00EC64 3A 67 E4 [13] 1975 ld a,(attrib_color) 00EC67 C3 ED E9 [10] 1976 jp m_e9ed 00EC6A 1977 Esc56_screen_attribute_set: 00EC6A 21 67 E4 [10] 1978 ld hl,#attrib_color 00EC6D 3A 66 E4 [13] 1979 ld a,(printed_char) 00EC70 FE 30 [ 7] 1980 cp a,#ATTR0_NONE 00EC72 D8 [11] 1981 ret c 00EC73 FE 34 [ 7] 1982 cp a,#ATTR3_BLINK_INVERSE+1 00EC75 D0 [11] 1983 ret nc 00EC76 CB 0F [ 8] 1984 rrc a 00EC78 CB 0F [ 8] 1985 rrc a 00EC7A E6 C0 [ 7] 1986 and a,#VRAM_ATTR_MASK 00EC7C 47 [ 4] 1987 ld b,a 00EC7D 7E [ 7] 1988 ld a,(hl) 00EC7E E6 3F [ 7] 1989 and a,#~VRAM_ATTR_MASK 00EC80 B0 [ 4] 1990 or a,b 00EC81 77 [ 7] 1991 ld (hl),a 00EC82 C9 [10] 1992 ret 00EC83 1993 chk_color_range: 00EC83 3A 66 E4 [13] 1994 ld a,(printed_char) 00EC86 D6 30 [ 7] 1995 sub a,#COLOR0_BLACK 00EC88 D8 [11] 1996 ret c 00EC89 FE 08 [ 7] 1997 cp a,#COLOR_COUNT 00EC8B 3F [ 4] 1998 ccf 00EC8C C9 [10] 1999 ret 00EC8D 2000 set_cursor_on: 00EC8D 06 40 [ 7] 2001 ld b,#0x40 00EC8F 18 02 [12] 2002 jr m_ec93 00EC91 2003 set_cursor_off: 00EC91 06 20 [ 7] 2004 ld b,#0x20 00EC93 2005 m_ec93: 00EC93 3A 70 E4 [13] 2006 ld a,(0xe470) 00EC96 E6 1F [ 7] 2007 and a,#0x1f 00EC98 B0 [ 4] 2008 or a,b 00EC99 32 70 E4 [13] 2009 ld (0xe470),a 00EC9C 06 0A [ 7] 2010 ld b,#0x0a 00EC9E 0E 50 [ 7] 2011 ld c,#0x50 00ECA0 ED 41 [12] 2012 out (c),b 00ECA2 0C [ 4] 2013 inc c 00ECA3 ED 79 [12] 2014 out (c),a 00ECA5 C9 [10] 2015 ret 00ECA6 2016 get_cursor_pos: 00ECA6 3E 01 [ 7] 2017 ld a,#0x01 00ECA8 32 CB E4 [13] 2018 ld (0xe4cb),a 00ECAB 0E 50 [ 7] 2019 ld c,#0x50 00ECAD 3E 0E [ 7] 2020 ld a,#0x0e 00ECAF ED 79 [12] 2021 out (c),a 00ECB1 0C [ 4] 2022 inc c 00ECB2 ED 60 [12] 2023 in h,(c) 00ECB4 3C [ 4] 2024 inc a 00ECB5 0D [ 4] 2025 dec c 00ECB6 ED 79 [12] 2026 out (c),a 00ECB8 0C [ 4] 2027 inc c 00ECB9 ED 68 [12] 2028 in l,(c) 00ECBB 3A 62 E4 [13] 2029 ld a,(column_count) 00ECBE 5F [ 4] 2030 ld e,a 00ECBF 16 00 [ 7] 2031 ld d,#0x00 00ECC1 0E 00 [ 7] 2032 ld c,#0x00 00ECC3 2033 m_ecc3: 00ECC3 B7 [ 4] 2034 or a,a 00ECC4 ED 52 [15] 2035 sbc hl,de 00ECC6 38 03 [12] 2036 jr c,m_eccb 00ECC8 0C [ 4] 2037 inc c 00ECC9 18 F8 [12] 2038 jr m_ecc3 00ECCB 2039 m_eccb: 00ECCB 19 [11] 2040 add hl,de 00ECCC 61 [ 4] 2041 ld h,c 00ECCD 22 CC E4 [16] 2042 ld (0xe4cc),hl 00ECD0 C9 [10] 2043 ret 00ECD1 2044 alternate_keyboard_table: 00ECD1 21 DD E4 [10] 2045 ld hl,#kbd_table_lookup 00ECD4 0E C0 [ 7] 2046 ld c,#kbd_table_lookup_size 00ECD6 2047 m_ecd6: 00ECD6 1A [ 7] 2048 ld a,(de) 00ECD7 47 [ 4] 2049 ld b,a 00ECD8 7E [ 7] 2050 ld a,(hl) 00ECD9 12 [ 7] 2051 ld (de),a 00ECDA 70 [ 7] 2052 ld (hl),b 00ECDB 13 [ 6] 2053 inc de 00ECDC 23 [ 6] 2054 inc hl 00ECDD 0D [ 4] 2055 dec c 00ECDE 20 F6 [12] 2056 jr nz,m_ecd6 00ECE0 C9 [10] 2057 ret 00ECE1 2058 Esc0C_initialize_screen_driver: 00ECE1 3A 66 E4 [13] 2059 ld a,(printed_char) 00ECE4 32 6A E4 [13] 2060 ld (cfg_esc_screen_drv),a 00ECE7 CB 7F [ 8] 2061 bit 7,a ;_DRV_NO_CLS==0 00ECE9 C0 [11] 2062 ret nz 00ECEA C3 E8 E9 [10] 2063 jp chr_clear_screen 00ECED 2064 function_more_0c13: 00ECED 79 [ 4] 2065 ld a,c 00ECEE 32 8C E4 [13] 2066 ld (0xe48c),a 00ECF1 2067 m_ecf1: 00ECF1 3A 66 E4 [13] 2068 ld a,(printed_char) 00ECF4 FE 1B [ 7] 2069 cp a,#VK_ESC 00ECF6 28 0F [12] 2070 jr z,m_ed07 00ECF8 FE 60 [ 7] 2071 cp a,#0x60 00ECFA D0 [11] 2072 ret nc 00ECFB CD 28 E8 [17] 2073 call m_e828 00ECFE DA 1E E8 [10] 2074 jp c,m_e81e 00ED01 32 66 E4 [13] 2075 ld (0xe466),a 00ED04 C3 EC E8 [10] 2076 jp m_e8ec 00ED07 2077 m_ed07: 00ED07 3E 32 [ 7] 2078 ld a,#0x32 00ED09 32 8C E4 [13] 2079 ld (0xe48c),a 00ED0C C9 [10] 2080 ret 2081 ; unchecked data source 00ED0D C9 2082 .db 0xc9 ;I 00ED0E 2083 function_more_0c14: 00ED0E 3A 66 E4 [13] 2084 ld a,(printed_char) 00ED11 FE 32 [ 7] 2085 cp a,#0x32 00ED13 C8 [11] 2086 ret z 00ED14 3E B1 [ 7] 2087 ld a,#0xb1 00ED16 32 8C E4 [13] 2088 ld (0xe48c),a 00ED19 18 D6 [12] 2089 jr m_ecf1 00ED1B 2090 function_more_0c10: 00ED1B 3A 66 E4 [13] 2091 ld a,(printed_char) 00ED1E FE 20 [ 7] 2092 cp a,#0x20 00ED20 38 0C [12] 2093 jr c,m_ed2e 00ED22 FE 38 [ 7] 2094 cp a,#0x38 00ED24 30 0B [12] 2095 jr nc,m_ed31 00ED26 D6 20 [ 7] 2096 sub a,#0x20 00ED28 2097 m_ed28: 00ED28 32 96 E4 [13] 2098 ld (0xe496),a 00ED2B C3 18 EC [10] 2099 jp graphic_mode_on 00ED2E 2100 m_ed2e: 00ED2E AF [ 4] 2101 xor a,a 00ED2F 18 F7 [12] 2102 jr m_ed28 00ED31 2103 m_ed31: 00ED31 3E 17 [ 7] 2104 ld a,#SCREEN_HEIGHT-1 00ED33 18 F3 [12] 2105 jr m_ed28 00ED35 2106 function_more_0c2: 00ED35 3A 66 E4 [13] 2107 ld a,(printed_char) 00ED38 B7 [ 4] 2108 or a,a 00ED39 28 ED [12] 2109 jr z,m_ed28 00ED3B FE 19 [ 7] 2110 cp a,#SCREEN_HEIGHT+1 00ED3D 30 F2 [12] 2111 jr nc,m_ed31 00ED3F 3D [ 4] 2112 dec a 00ED40 18 E6 [12] 2113 jr m_ed28 00ED42 2114 function_more_0c17: 00ED42 3A 66 E4 [13] 2115 ld a,(0xe466) 00ED45 D6 20 [ 7] 2116 sub a,#0x20 00ED47 38 15 [12] 2117 jr c,m_ed5e 00ED49 2118 m_ed49: 00ED49 F5 [11] 2119 push af 00ED4A 3A 62 E4 [13] 2120 ld a,(column_count) 00ED4D 47 [ 4] 2121 ld b,a 00ED4E F1 [10] 2122 pop af 00ED4F B8 [ 4] 2123 cp a,b 00ED50 30 0F [12] 2124 jr nc,m_ed61 00ED52 2125 m_ed52: 00ED52 32 6E E4 [13] 2126 ld (cursor_column),a 00ED55 3A 96 E4 [13] 2127 ld a,(0xe496) 00ED58 32 6D E4 [13] 2128 ld (0xe46d),a 00ED5B C3 31 E9 [10] 2129 jp crt_set_cursor 00ED5E 2130 m_ed5e: 00ED5E AF [ 4] 2131 xor a,a 00ED5F 18 F1 [12] 2132 jr m_ed52 00ED61 2133 m_ed61: 00ED61 78 [ 4] 2134 ld a,b 00ED62 3D [ 4] 2135 dec a 00ED63 18 ED [12] 2136 jr m_ed52 00ED65 2137 function_more_0c11: 00ED65 3A 66 E4 [13] 2138 ld a,(0xe466) 00ED68 18 DF [12] 2139 jr m_ed49 00ED6A 2140 write_character: 00ED6A D5 [11] 2141 push de 00ED6B CD B7 E9 [17] 2142 call set_cursor_abs 00ED6E D1 [10] 2143 pop de 00ED6F CD 28 EA [17] 2144 call wait_flicker_free 00ED72 73 [ 7] 2145 ld (hl),e 00ED73 2146 m_ed73: 00ED73 3A 6D E4 [13] 2147 ld a,(0xe46d) 00ED76 FE 17 [ 7] 2148 cp a,#0x17 00ED78 C2 FA E8 [10] 2149 jp nz,m_e8fa 00ED7B 3A 62 E4 [13] 2150 ld a,(column_count) 00ED7E 3D [ 4] 2151 dec a 00ED7F 47 [ 4] 2152 ld b,a 00ED80 3A 6E E4 [13] 2153 ld a,(cursor_column) 00ED83 B8 [ 4] 2154 cp a,b 00ED84 C2 FA E8 [10] 2155 jp nz,m_e8fa 00ED87 C9 [10] 2156 ret 00ED88 2157 read_character: 00ED88 3E 01 [ 7] 2158 ld a,#0x01 00ED8A 32 CB E4 [13] 2159 ld (0xe4cb),a 00ED8D CD B7 E9 [17] 2160 call set_cursor_abs 00ED90 CD 28 EA [17] 2161 call wait_flicker_free 00ED93 7E [ 7] 2162 ld a,(hl) 00ED94 32 CC E4 [13] 2163 ld (0xe4cc),a 00ED97 18 DA [12] 2164 jr m_ed73 00ED99 2165 erase_rest_of_line: 00ED99 0E 01 [ 7] 2166 ld c,#0x01 00ED9B 2167 m_ed9b: 00ED9B 3A 6E E4 [13] 2168 ld a,(cursor_column) 00ED9E 2169 m_ed9e: 00ED9E F5 [11] 2170 push af 00ED9F CD B7 E9 [17] 2171 call set_cursor_abs 00EDA2 F1 [10] 2172 pop af 00EDA3 2173 m_eda3: 00EDA3 F5 [11] 2174 push af 00EDA4 3A 62 E4 [13] 2175 ld a,(column_count) 00EDA7 3D [ 4] 2176 dec a 00EDA8 47 [ 4] 2177 ld b,a 00EDA9 1E 20 [ 7] 2178 ld e,#' ' 00EDAB F1 [10] 2179 pop af 00EDAC F5 [11] 2180 push af 00EDAD C5 [11] 2181 push bc 00EDAE E5 [11] 2182 push hl 00EDAF CD BA ED [17] 2183 call fill_cnt 00EDB2 E1 [10] 2184 pop hl 00EDB3 11 00 08 [10] 2185 ld de,#0x0800 00EDB6 19 [11] 2186 add hl,de 00EDB7 5E [ 7] 2187 ld e,(hl) 00EDB8 C1 [10] 2188 pop bc 00EDB9 F1 [10] 2189 pop af 00EDBA 2190 fill_cnt: 00EDBA F5 [11] 2191 push af 00EDBB C5 [11] 2192 push bc 00EDBC CD 27 EA [17] 2193 call wait_flicker_free_save_A 00EDBF C1 [10] 2194 pop bc 00EDC0 F1 [10] 2195 pop af 00EDC1 73 [ 7] 2196 ld (hl),e 00EDC2 B8 [ 4] 2197 cp a,b 00EDC3 28 04 [12] 2198 jr z,m_edc9 00EDC5 23 [ 6] 2199 inc hl 00EDC6 3C [ 4] 2200 inc a 00EDC7 18 F1 [12] 2201 jr fill_cnt 00EDC9 2202 m_edc9: 00EDC9 0D [ 4] 2203 dec c 00EDCA C8 [11] 2204 ret z 00EDCB AF [ 4] 2205 xor a,a 00EDCC 23 [ 6] 2206 inc hl 00EDCD 18 EB [12] 2207 jr fill_cnt 00EDCF 2208 erase_line: 00EDCF 3A 6E E4 [13] 2209 ld a,(cursor_column) 00EDD2 5F [ 4] 2210 ld e,a 00EDD3 16 00 [ 7] 2211 ld d,#0x00 00EDD5 B7 [ 4] 2212 or a,a 00EDD6 ED 52 [15] 2213 sbc hl,de 00EDD8 AF [ 4] 2214 xor a,a 00EDD9 0E 01 [ 7] 2215 ld c,#0x01 00EDDB 18 C1 [12] 2216 jr m_ed9e 00EDDD 2217 function_4a: 00EDDD 3A 6D E4 [13] 2218 ld a,(0xe46d) 00EDE0 47 [ 4] 2219 ld b,a 00EDE1 3E 18 [ 7] 2220 ld a,#0x18 00EDE3 90 [ 4] 2221 sub a,b 00EDE4 4F [ 4] 2222 ld c,a 00EDE5 18 B4 [12] 2223 jr m_ed9b 00EDE7 2224 function_more_0c4: 00EDE7 CD 11 EE [17] 2225 call check_cursor_range 00EDEA D8 [11] 2226 ret c 00EDEB 2227 m_edeb: 00EDEB 23 [ 6] 2228 inc hl 00EDEC CD 28 EA [17] 2229 call wait_flicker_free 00EDEF 7E [ 7] 2230 ld a,(hl) 00EDF0 2B [ 6] 2231 dec hl 00EDF1 77 [ 7] 2232 ld (hl),a 00EDF2 23 [ 6] 2233 inc hl 00EDF3 0D [ 4] 2234 dec c 00EDF4 20 F5 [12] 2235 jr nz,m_edeb 00EDF6 2236 m_edf6: 00EDF6 CD 28 EA [17] 2237 call wait_flicker_free 00EDF9 36 20 [10] 2238 ld (hl),#' ' 00EDFB C9 [10] 2239 ret 00EDFC 2240 function_more_0c5: 00EDFC CD 11 EE [17] 2241 call check_cursor_range 00EDFF D8 [11] 2242 ret c 00EE00 5F [ 4] 2243 ld e,a 00EE01 16 00 [ 7] 2244 ld d,#0x00 00EE03 19 [11] 2245 add hl,de 00EE04 2246 m_ee04: 00EE04 2B [ 6] 2247 dec hl 00EE05 CD 28 EA [17] 2248 call wait_flicker_free 00EE08 7E [ 7] 2249 ld a,(hl) 00EE09 23 [ 6] 2250 inc hl 00EE0A 77 [ 7] 2251 ld (hl),a 00EE0B 2B [ 6] 2252 dec hl 00EE0C 0D [ 4] 2253 dec c 00EE0D 20 F5 [12] 2254 jr nz,m_ee04 00EE0F 18 E5 [12] 2255 jr m_edf6 00EE11 2256 check_cursor_range: 00EE11 CD B7 E9 [17] 2257 call set_cursor_abs 00EE14 3A 6E E4 [13] 2258 ld a,(cursor_column) 00EE17 4F [ 4] 2259 ld c,a 00EE18 3A 62 E4 [13] 2260 ld a,(column_count) 00EE1B 47 [ 4] 2261 ld b,a 00EE1C 3A 66 E4 [13] 2262 ld a,(printed_char) 00EE1F B8 [ 4] 2263 cp a,b 00EE20 30 06 [12] 2264 jr nc,check_cursor_range_fail 00EE22 91 [ 4] 2265 sub a,c 00EE23 28 03 [12] 2266 jr z,check_cursor_range_fail 00EE25 D8 [11] 2267 ret c 00EE26 4F [ 4] 2268 ld c,a 00EE27 C9 [10] 2269 ret 00EE28 2270 check_cursor_range_fail: 00EE28 37 [ 4] 2271 scf 00EE29 C9 [10] 2272 ret 00EE2A 2273 function_more_0c1: 00EE2A CD B7 E9 [17] 2274 call set_cursor_abs 00EE2D 1E 20 [ 7] 2275 ld e,#0x20 00EE2F 3A 66 E4 [13] 2276 ld a,(0xe466) 00EE32 2277 m_ee32: 00EE32 B7 [ 4] 2278 or a,a 00EE33 C8 [11] 2279 ret z 00EE34 4F [ 4] 2280 ld c,a 00EE35 3A 62 E4 [13] 2281 ld a,(column_count) 00EE38 47 [ 4] 2282 ld b,a 00EE39 3A 6E E4 [13] 2283 ld a,(cursor_column) 00EE3C 2284 m_ee3c: 00EE3C CD 28 EA [17] 2285 call wait_flicker_free 00EE3F 73 [ 7] 2286 ld (hl),e 00EE40 23 [ 6] 2287 inc hl 00EE41 3C [ 4] 2288 inc a 00EE42 B8 [ 4] 2289 cp a,b 00EE43 28 07 [12] 2290 jr z,m_ee4c 00EE45 2291 m_ee45: 00EE45 0D [ 4] 2292 dec c 00EE46 20 F4 [12] 2293 jr nz,m_ee3c 00EE48 2294 m_ee48: 00EE48 32 6E E4 [13] 2295 ld (cursor_column),a 00EE4B C9 [10] 2296 ret 00EE4C 2297 m_ee4c: 00EE4C 16 18 [ 7] 2298 ld d,#0x18 00EE4E 3A 6D E4 [13] 2299 ld a,(0xe46d) 00EE51 3C [ 4] 2300 inc a 00EE52 BA [ 4] 2301 cp a,d 00EE53 28 06 [12] 2302 jr z,m_ee5b 00EE55 32 6D E4 [13] 2303 ld (0xe46d),a 00EE58 AF [ 4] 2304 xor a,a 00EE59 18 EA [12] 2305 jr m_ee45 00EE5B 2306 m_ee5b: 00EE5B 78 [ 4] 2307 ld a,b 00EE5C 3D [ 4] 2308 dec a 00EE5D 18 E9 [12] 2309 jr m_ee48 00EE5F 2310 function_more_0c3: 00EE5F 3A 66 E4 [13] 2311 ld a,(0xe466) 00EE62 32 CE E4 [13] 2312 ld (0xe4ce),a 00EE65 C3 18 EC [10] 2313 jp graphic_mode_on 00EE68 2314 function_more_0c12: 00EE68 CD B7 E9 [17] 2315 call set_cursor_abs 00EE6B 3A 66 E4 [13] 2316 ld a,(printed_char) 00EE6E 5F [ 4] 2317 ld e,a 00EE6F 3A CE E4 [13] 2318 ld a,(0xe4ce) 00EE72 4F [ 4] 2319 ld c,a 00EE73 18 BD [12] 2320 jr m_ee32 00EE75 2321 Esc53_screen_width_set: 00EE75 CD 0F EA [17] 2322 call display_inhibit 00EE78 2323 m_ee78: 00EE78 21 68 E4 [10] 2324 ld hl,#cfg10_settings 00EE7B 3A 66 E4 [13] 2325 ld a,(printed_char) 00EE7E FE 30 [ 7] 2326 cp a,#ATTR_WIDTH40 00EE80 28 06 [12] 2327 jr z,switch_crt40 00EE82 FE 31 [ 7] 2328 cp a,#ATTR_WIDTH80 00EE84 28 0A [12] 2329 jr z,switch_crt80 00EE86 18 41 [12] 2330 jr m_eec9 00EE88 2331 switch_crt40: 00EE88 CB 86 [15] 2332 res 0,(hl) ;_CRT80=0 00EE8A DD 21 CF EE [14] 2333 ld ix,#crt_table40 00EE8E 18 06 [12] 2334 jr m_ee96 00EE90 2335 switch_crt80: 00EE90 CB C6 [15] 2336 set 0,(hl) ;_CRT80=1 00EE92 DD 21 E1 EE [14] 2337 ld ix,#crt_table80 00EE96 2338 m_ee96: 00EE96 DD 7E 01 [19] 2339 ld a,1(ix) 00EE99 32 62 E4 [13] 2340 ld (column_count),a 00EE9C DD 7E 06 [19] 2341 ld a,6(ix) 00EE9F 32 61 E4 [13] 2342 ld (0xe461),a 00EEA2 32 60 E4 [13] 2343 ld (0xe460),a 00EEA5 32 64 E4 [13] 2344 ld (0xe464),a 00EEA8 32 65 E4 [13] 2345 ld (0xe465),a 00EEAB DD 7E 0A [19] 2346 ld a,10(ix) 00EEAE 32 70 E4 [13] 2347 ld (cursor_start),a 00EEB1 06 10 [ 7] 2348 ld b,#crt_table40_size 00EEB3 0E 00 [ 7] 2349 ld c,#REG_0 00EEB5 2350 crt_write_reg: 00EEB5 79 [ 4] 2351 ld a,c 00EEB6 D3 50 [11] 2352 out (CRT_REG),a 00EEB8 DD 7E 00 [19] 2353 ld a,0(ix) 00EEBB D3 51 [11] 2354 out (CRT_DATA),a 00EEBD 0C [ 4] 2355 inc c 00EEBE DD 23 [10] 2356 inc ix 00EEC0 10 F3 [13] 2357 djnz crt_write_reg 00EEC2 AF [ 4] 2358 xor a,a 00EEC3 32 63 E4 [13] 2359 ld (0xe463),a 00EEC6 CD E8 E9 [17] 2360 call chr_clear_screen 00EEC9 2361 m_eec9: 00EEC9 CD 1C EA [17] 2362 call m_ea1c 00EECC C3 10 EC [10] 2363 jp m_ec10 00EECF 2364 crt_table40: 00EECF 46 28 34 56 1E 02 18 2365 .db 0x46,0x28,0x34,0x56,0x1e,0x02,0x18,0x1b ;F(4V.... 1B 00EED7 00 09 49 09 00 00 00 2366 .db 0x00,0x09,0x49,0x09,0x00,0x00,0x00,0x00 ;..I..... 00 2367 ; unchecked data source 00EEDF 00 00 2368 .db 0x00,0x00 ;.. 00EEE1 2369 crt_table80: 00EEE1 7E 50 5F 5C 1E 04 18 2370 .db 0x7e,0x50,0x5f,0x5c,0x1e,0x04,0x18,0x1b ;~P_\.... 1B 00EEE9 00 09 49 09 00 00 00 2371 .db 0x00,0x09,0x49,0x09,0x00,0x00,0x00,0x00 ;..I..... 00 2372 ; unchecked data source 00EEF1 00 00 E6 00 00 00 00 2373 .db 0x00,0x00,0xe6,0x00,0x00,0x00,0x00,0x00 ;..f..... 00 00EEF9 00 00 00 00 00 00 00 2374 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;....... 00EF00 2375 int0_timer: 00EF00 C9 [10] 2376 ret 2377 ; unchecked data source 00EF01 EB 00 00 2378 .db 0xeb,0x00,0x00 ;k.. 00EF04 2379 int1_rx_rdy: 00EF04 C9 [10] 2380 ret 2381 ; unchecked data source 00EF05 D1 00 00 2382 .db 0xd1,0x00,0x00 ;Q.. 00EF08 2383 int2_tx_rdy: 00EF08 C9 [10] 2384 ret 2385 ; unchecked data source 00EF09 E1 00 00 2386 .db 0xe1,0x00,0x00 ;a.. 00EF0C 2387 int3_extint2: 00EF0C C9 [10] 2388 ret 2389 ; unchecked data source 00EF0D 23 00 00 2390 .db 0x23,0x00,0x00 ;#.. 00EF10 2391 int4_extint1: 00EF10 C9 [10] 2392 ret 2393 ; unchecked data source 00EF11 C4 00 00 2394 .db 0xc4,0x00,0x00 ;D.. 00EF14 2395 int5_unused: 00EF14 C9 [10] 2396 ret 2397 ; unchecked data source 00EF15 D1 00 00 2398 .db 0xd1,0x00,0x00 ;Q.. 00EF18 2399 int6_unused: 00EF18 C9 [10] 2400 ret 2401 ; unchecked data source 00EF19 D6 00 00 2402 .db 0xd6,0x00,0x00 ;V.. 00EF1C 2403 int7_vint: 00EF1C C9 [10] 2404 ret 2405 ; unchecked data source 00EF1D 3B 00 00 2406 .db 0x3b,0x00,0x00 ;;.. 00EF20 2407 patch_table_1: 00EF20 46 2408 .db 0x46 ;F 00EF21 16 E9 2409 .db 0x16,0xe9 ;.i 00EF23 40 2410 .db 0x40 ;@ 00EF24 1C E9 2411 .db 0x1c,0xe9 ;.i 00EF26 C2 2412 .db 0xc2 ;B 00EF27 62 E9 2413 .db 0x62,0xe9 ;bi 00EF29 00 2414 .db 0x00 ;. 00EF2A 2415 patch_table_2: 00EF2A 33 2416 .db 0x33 ;3 00EF2B 16 E9 2417 .db 0x16,0xe9 ;.i 00EF2D 46 2418 .db 0x46 ;F 00EF2E 1C E9 2419 .db 0x1c,0xe9 ;.i 00EF30 BF 2420 .db 0xbf ;? 00EF31 62 E9 2421 .db 0x62,0xe9 ;bi 00EF33 00 2422 .db 0x00 ;. 00EF34 2423 get_hex_digit: 00EF34 CD F2 E3 [17] 2424 call get_char_echoed 00EF37 FE 30 [ 7] 2425 cp a,#'0' 00EF39 38 16 [12] 2426 jr c,m_ef51 00EF3B FE 3A [ 7] 2427 cp a,#'9'+1 00EF3D 38 0E [12] 2428 jr c,m_ef4d 00EF3F E6 5F [ 7] 2429 and a,#MASK_CAPITALIZE 00EF41 FE 41 [ 7] 2430 cp a,#'A' 00EF43 38 0C [12] 2431 jr c,m_ef51 00EF45 FE 47 [ 7] 2432 cp a,#'F'+1 00EF47 30 08 [12] 2433 jr nc,m_ef51 00EF49 D6 37 [ 7] 2434 sub a,#0x37 00EF4B 2435 m_ef4b: 00EF4B A7 [ 4] 2436 and a,a 00EF4C C9 [10] 2437 ret 00EF4D 2438 m_ef4d: 00EF4D D6 30 [ 7] 2439 sub a,#0x30 00EF4F 18 FA [12] 2440 jr m_ef4b 00EF51 2441 m_ef51: 00EF51 37 [ 4] 2442 scf 00EF52 C9 [10] 2443 ret 00EF53 2444 get_hex_number: 00EF53 E5 [11] 2445 push hl 00EF54 21 9D E4 [10] 2446 ld hl,#param_word+1 00EF57 AF [ 4] 2447 xor a,a 00EF58 77 [ 7] 2448 ld (hl),a 00EF59 2B [ 6] 2449 dec hl 00EF5A 77 [ 7] 2450 ld (hl),a 00EF5B 2451 m_ef5b: 00EF5B CD 34 EF [17] 2452 call get_hex_digit 00EF5E 38 08 [12] 2453 jr c,m_ef68 00EF60 ED 6F [18] 2454 rld 00EF62 23 [ 6] 2455 inc hl 00EF63 ED 6F [18] 2456 rld 00EF65 2B [ 6] 2457 dec hl 00EF66 18 F3 [12] 2458 jr m_ef5b 00EF68 2459 m_ef68: 00EF68 E1 [10] 2460 pop hl 00EF69 C9 [10] 2461 ret 00EF6A 2462 puts: 00EF6A 7E [ 7] 2463 ld a,(hl) 00EF6B B7 [ 4] 2464 or a,a 00EF6C C8 [11] 2465 ret z 00EF6D 4F [ 4] 2466 ld c,a 00EF6E CD D5 E3 [17] 2467 call put_char 00EF71 23 [ 6] 2468 inc hl 00EF72 18 F6 [12] 2469 jr puts 00EF74 2470 patch_os_functions: 00EF74 3E 01 [ 7] 2471 ld a,#0x01 00EF76 32 D0 E4 [13] 2472 ld (os_patch),a 00EF79 3A D0 E4 [13] 2473 ld a,(os_patch) 00EF7C B7 [ 4] 2474 or a,a 00EF7D C8 [11] 2475 ret z 00EF7E 21 20 EF [10] 2476 ld hl,#patch_table_1 00EF81 2477 patch_rom_code: 00EF81 7E [ 7] 2478 ld a,(hl) 00EF82 B7 [ 4] 2479 or a,a 00EF83 C8 [11] 2480 ret z 00EF84 23 [ 6] 2481 inc hl 00EF85 5E [ 7] 2482 ld e,(hl) 00EF86 23 [ 6] 2483 inc hl 00EF87 56 [ 7] 2484 ld d,(hl) 00EF88 12 [ 7] 2485 ld (de),a 00EF89 23 [ 6] 2486 inc hl 00EF8A 18 F5 [12] 2487 jr patch_rom_code 00EF8C 2488 restore_os_functions: 00EF8C 21 2A EF [10] 2489 ld hl,#0xef2a 00EF8F 18 F0 [12] 2490 jr patch_rom_code 00EF91 2491 wait_fdd_ready: 00EF91 DB F0 [11] 2492 in a,(UPD765_STATE) 00EF93 CB 77 [ 8] 2493 bit 6,a 00EF95 20 FA [12] 2494 jr nz,wait_fdd_ready 00EF97 C9 [10] 2495 ret 00EF98 2496 fdd_available: 00EF98 CD 0F EA [17] 2497 call display_inhibit 00EF9B 21 69 E4 [10] 2498 ld hl,#cfg20_settings 00EF9E CB 9E [15] 2499 res 3,(hl) 00EFA0 7E [ 7] 2500 ld a,(hl) 00EFA1 D3 20 [11] 2501 out (CFG20),a 00EFA3 C3 B2 F0 [10] 2502 jp m_f0b2 00EFA6 2503 m_efa6: 00EFA6 21 69 E4 [10] 2504 ld hl,#cfg20_settings 00EFA9 CB DE [15] 2505 set 3,(hl) 00EFAB 7E [ 7] 2506 ld a,(hl) 00EFAC D3 20 [11] 2507 out (CFG20),a 00EFAE 21 68 E4 [10] 2508 ld hl,#cfg10_settings 00EFB1 CB FE [15] 2509 set 7,(hl) 00EFB3 7E [ 7] 2510 ld a,(hl) 00EFB4 D3 10 [11] 2511 out (CFG10),a 00EFB6 3A 00 C2 [13] 2512 ld a,(boot_sector) 00EFB9 FE 16 [ 7] 2513 cp a,#0x16 00EFBB CC 74 EF [17] 2514 call z,patch_os_functions 00EFBE C3 00 C2 [10] 2515 jp boot_sector 00EFC1 2516 ENTRY: 00EFC1 31 00 F0 [10] 2517 ld sp,#stack_at_boot 00EFC4 CD 0F EA [17] 2518 call display_inhibit 00EFC7 21 69 E4 [10] 2519 ld hl,#cfg20_settings 00EFCA CB F6 [15] 2520 set 6,(hl) ;UPPER_MONITOR_SEL=1 00EFCC 7E [ 7] 2521 ld a,(hl) 00EFCD D3 20 [11] 2522 out (CFG20),a 00EFCF CD 10 F0 [17] 2523 call init_system 00EFD2 C3 00 E0 [10] 2524 jp init_bios 2525 ; unchecked data source 00EFD5 74 00 00 00 00 00 00 2526 .db 0x74,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;t....... 00 00EFDD 00 00 00 00 00 00 00 2527 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00EFE5 00 00 00 00 00 00 00 2528 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00EFED 00 00 00 2529 .db 0x00,0x00,0x00 ;... 00EFF0 2530 boot:: 00EFF0 11 00 E0 [10] 2531 ld de,#init_bios 00EFF3 21 00 F0 [10] 2532 ld hl,#bios_rom 00EFF6 01 FE 0F [10] 2533 ld bc,#SIZE4K-2 00EFF9 ED B0 [21] 2534 ldir 00EFFB C3 C1 EF [10] 2535 jp ENTRY 2536 ; unchecked data source 00EFFE 00 00 00 00 00 00 00 2537 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F006 00 00 00 00 00 00 00 2538 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F00E 00 00 2539 .db 0x00,0x00 ;.. 00F010 2540 init_system: 00F010 CD 7E F0 [17] 2541 call init_pic 00F013 CD 2C EB [17] 2542 call init_serial 00F016 CD 20 F0 [17] 2543 call patch_printer_ptr 00F019 CD 2C F0 [17] 2544 call init_kbd_table 00F01C CD 6D F0 [17] 2545 call init_crt_param 00F01F C9 [10] 2546 ret 00F020 2547 patch_printer_ptr: 00F020 DB 10 [11] 2548 in a,(STATUS10) 00F022 CB 6F [ 8] 2549 bit 5,a ;_PRT_SERIAL==0 00F024 C8 [11] 2550 ret z 00F025 2A 37 E4 [16] 2551 ld hl,(dev_serial_write_byte+1) 00F028 22 3A E4 [16] 2552 ld (dev_printer_write_byte+1),hl 00F02B C9 [10] 2553 ret 00F02C 2554 init_kbd_table: 00F02C DB 10 [11] 2555 in a,(STATUS10) 00F02E E6 1C [ 7] 2556 and a,#MASK_COUNTRY_SELECT 00F030 C8 [11] 2557 ret z 00F031 1F [ 4] 2558 rra 00F032 1F [ 4] 2559 rra 00F033 E6 07 [ 7] 2560 and a,#MASK_COUNTRY_BITS 00F035 FE 01 [ 7] 2561 cp a,#COUNTRY_DE 00F037 CC 3A F1 [17] 2562 call z,set_german_ascii_range 00F03A FE 02 [ 7] 2563 cp a,#COUNTRY_US 00F03C CC 42 F1 [17] 2564 call z,m_f142 00F03F FE 03 [ 7] 2565 cp a,#COUNTRY_FR 00F041 CC 45 F1 [17] 2566 call z,m_f145 00F044 FE 04 [ 7] 2567 cp a,#COUNTRY_UK 00F046 CC 48 F1 [17] 2568 call z,m_f148 00F049 FE 05 [ 7] 2569 cp a,#COUNTRY_IT 00F04B CC 4B F1 [17] 2570 call z,m_f14b 00F04E FE 06 [ 7] 2571 cp a,#COUNTRY_ES 00F050 CC 4E F1 [17] 2572 call z,m_f14e 00F053 FE 07 [ 7] 2573 cp a,#COUNTRY_07 00F055 CC 51 F1 [17] 2574 call z,m_f151 00F058 11 C0 00 [10] 2575 ld de,#kbd_table_de_size 00F05B 21 00 F8 [10] 2576 ld hl,#kbd_table_int 00F05E 2577 get_kbd_table_address: 00F05E 3D [ 4] 2578 dec a 00F05F 28 03 [12] 2579 jr z,copy_kbd_table 00F061 19 [11] 2580 add hl,de 00F062 18 FA [12] 2581 jr get_kbd_table_address 00F064 2582 copy_kbd_table: 00F064 11 DD E4 [10] 2583 ld de,#kbd_table_lookup 00F067 01 C0 00 [10] 2584 ld bc,#kbd_table_de_size 00F06A ED B0 [21] 2585 ldir 00F06C C9 [10] 2586 ret 00F06D 2587 init_crt_param: 00F06D DB 10 [11] 2588 in a,(STATUS10) 00F06F CB 77 [ 8] 2589 bit 6,a 00F071 C8 [11] 2590 ret z 00F072 21 40 FD [10] 2591 ld hl,#crt_table_ntsc 00F075 11 CF EE [10] 2592 ld de,#crt_table40 00F078 01 24 00 [10] 2593 ld bc,#crt_table_ntsc_size 00F07B ED B0 [21] 2594 ldir 00F07D C9 [10] 2595 ret 00F07E 2596 init_pic: 00F07E 3E 16 [ 7] 2597 ld a,#0x16 00F080 D3 70 [11] 2598 out (PIC_ICW1),a 00F082 3E EF [ 7] 2599 ld a,#>int0_timer 00F084 D3 71 [11] 2600 out (PIC_ICW2),a 00F086 3E FF [ 7] 2601 ld a,#0xff 00F088 D3 71 [11] 2602 out (0x71),a 00F08A C9 [10] 2603 ret 00F08B 2604 fdc_cmd_init: 00F08B 03 CF 1C 07 00 2605 .db 0x03,0xcf,0x1c,0x07,0x00 ;.O... 00F090 2606 fdc_cmd_read_boot: 00F090 46 00 00 00 01 01 10 2607 .db 0x46,0x00,0x00,0x00,0x01,0x01,0x10,0x36 ;F......6 36 00F098 FF 2608 .db 0xff ;. 00F099 2609 fdc_write_byte_ix: 00F099 DD 7E 00 [19] 2610 ld a,0(ix) 00F09C DD 23 [10] 2611 inc ix 00F09E 2612 fdc_write_byte: 00F09E F5 [11] 2613 push af 00F09F 2614 m_f09f: 00F09F DB F9 [11] 2615 in a,(UPD765_MAIN_STATUS) 00F0A1 CB 7F [ 8] 2616 bit 7,a ;RQM_Request_for_master==0 00F0A3 28 FA [12] 2617 jr z,m_f09f 00F0A5 F1 [10] 2618 pop af 00F0A6 D3 F8 [11] 2619 out (UPD765_DATA),a 00F0A8 C9 [10] 2620 ret 00F0A9 2621 fdc_read_byte: 00F0A9 DB F9 [11] 2622 in a,(UPD765_MAIN_STATUS) 00F0AB C6 40 [ 7] 2623 add a,#0x40 00F0AD 30 FA [12] 2624 jr nc,fdc_read_byte 00F0AF DB F8 [11] 2625 in a,(UPD765_DATA) 00F0B1 C9 [10] 2626 ret 00F0B2 2627 m_f0b2: 00F0B2 AF [ 4] 2628 xor a,a 00F0B3 D3 F0 [11] 2629 out (FDC_UNIT),a 00F0B5 11 00 C2 [10] 2630 ld de,#boot_sector 00F0B8 7B [ 4] 2631 ld a,e 00F0B9 D3 64 [11] 2632 out (0x64),a 00F0BB 7A [ 4] 2633 ld a,d 00F0BC D3 64 [11] 2634 out (0x64),a 00F0BE 3E FF [ 7] 2635 ld a,#0xff 00F0C0 D3 F0 [11] 2636 out (FDC_UNIT),a 00F0C2 D3 F0 [11] 2637 out (FDC_UNIT),a 00F0C4 D3 65 [11] 2638 out (0x65),a 00F0C6 3E 40 [ 7] 2639 ld a,#0x40 00F0C8 D3 65 [11] 2640 out (0x65),a 00F0CA 21 40 9C [10] 2641 ld hl,#0x9c40 00F0CD CD 7B E6 [17] 2642 call delay 00F0D0 21 40 9C [10] 2643 ld hl,#0x9c40 00F0D3 CD 7B E6 [17] 2644 call delay 00F0D6 0E 05 [ 7] 2645 ld c,#fdc_cmd_init_size 00F0D8 DD 21 8B F0 [14] 2646 ld ix,#fdc_cmd_init 00F0DC 2647 fdw_write_next_byte: 00F0DC CD 99 F0 [17] 2648 call fdc_write_byte_ix 00F0DF 0D [ 4] 2649 dec c 00F0E0 20 FA [12] 2650 jr nz,fdw_write_next_byte 00F0E2 CD FD E3 [17] 2651 call dev_fdd_wait_ready 00F0E5 2652 m_f0e5: 00F0E5 3E 08 [ 7] 2653 ld a,#FDC_CMD_SENSE_INTERRUPT_STATE 00F0E7 CD 9E F0 [17] 2654 call fdc_write_byte 00F0EA CD A9 F0 [17] 2655 call fdc_read_byte 00F0ED FE 80 [ 7] 2656 cp a,#0x80 00F0EF 28 F4 [12] 2657 jr z,m_f0e5 00F0F1 CD A9 F0 [17] 2658 call fdc_read_byte 00F0F4 3E 44 [ 7] 2659 ld a,#0x44 00F0F6 D3 68 [11] 2660 out (DMA_MODE_SET),a 00F0F8 0E 09 [ 7] 2661 ld c,#0x09 00F0FA 2662 m_f0fa: 00F0FA CD 99 F0 [17] 2663 call fdc_write_byte_ix 00F0FD 0D [ 4] 2664 dec c 00F0FE 20 FA [12] 2665 jr nz,m_f0fa 00F100 CD FD E3 [17] 2666 call dev_fdd_wait_ready 00F103 CD A9 F0 [17] 2667 call fdc_read_byte 00F106 E6 C0 [ 7] 2668 and a,#0xc0 00F108 20 A8 [12] 2669 jr nz,m_f0b2 00F10A 0E 06 [ 7] 2670 ld c,#0x06 00F10C 2671 m_f10c: 00F10C CD A9 F0 [17] 2672 call fdc_read_byte 00F10F 0D [ 4] 2673 dec c 00F110 20 FA [12] 2674 jr nz,m_f10c 00F112 C3 A6 EF [10] 2675 jp m_efa6 00F115 2676 m_f115: 00F115 21 64 FD [10] 2677 ld hl,#0xfd64 00F118 11 25 E5 [10] 2678 ld de,#0xe525 00F11B 01 18 00 [10] 2679 ld bc,#0x0018 00F11E ED B0 [21] 2680 ldir 00F120 11 85 E5 [10] 2681 ld de,#0xe585 00F123 01 18 00 [10] 2682 ld bc,#0x0018 00F126 ED B0 [21] 2683 ldir 00F128 21 94 FD [10] 2684 ld hl,#0xfd94 00F12B 11 67 E8 [10] 2685 ld de,#0xe867 00F12E 0E 08 [ 7] 2686 ld c,#0x08 00F130 2687 m_f130: 00F130 7E [ 7] 2688 ld a,(hl) 00F131 12 [ 7] 2689 ld (de),a 00F132 23 [ 6] 2690 inc hl 00F133 13 [ 6] 2691 inc de 00F134 13 [ 6] 2692 inc de 00F135 13 [ 6] 2693 inc de 00F136 0D [ 4] 2694 dec c 00F137 20 F7 [12] 2695 jr nz,m_f130 00F139 C9 [10] 2696 ret 00F13A 2697 set_german_ascii_range: 00F13A F5 [11] 2698 push af 00F13B 3E 7E [ 7] 2699 ld a,#GERMAN_MAX_ASCII_CODE 00F13D 32 50 E7 [13] 2700 ld (opcode_compare+1),a 00F140 F1 [10] 2701 pop af 00F141 C9 [10] 2702 ret 00F142 2703 m_f142: 00F142 C9 [10] 2704 ret 2705 ; unchecked data source 00F143 00 00 2706 .db 0x00,0x00 ;.. 00F145 2707 m_f145: 00F145 C9 [10] 2708 ret 2709 ; unchecked data source 00F146 00 00 2710 .db 0x00,0x00 ;.. 00F148 2711 m_f148: 00F148 C9 [10] 2712 ret 2713 ; unchecked data source 00F149 00 00 2714 .db 0x00,0x00 ;.. 00F14B 2715 m_f14b: 00F14B C9 [10] 2716 ret 2717 ; unchecked data source 00F14C 00 00 2718 .db 0x00,0x00 ;.. 00F14E 2719 m_f14e: 00F14E C9 [10] 2720 ret 2721 ; unchecked data source 00F14F 00 00 2722 .db 0x00,0x00 ;.. 00F151 2723 m_f151: 00F151 C9 [10] 2724 ret 2725 ; unchecked data source 00F152 00 00 00 00 00 00 00 2726 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F15A 00 00 00 00 00 00 00 2727 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F162 00 00 00 00 00 00 00 2728 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F16A 00 00 00 00 00 00 00 2729 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F172 00 00 00 00 00 00 00 2730 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F17A 00 00 00 00 00 00 00 2731 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F182 00 00 00 00 00 00 00 2732 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F18A 00 00 00 00 00 00 00 2733 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F192 00 00 00 00 00 00 00 2734 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F19A 00 00 00 00 00 00 00 2735 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1A2 00 00 00 00 00 00 00 2736 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1AA 00 00 00 00 00 00 00 2737 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1B2 00 00 00 00 00 00 00 2738 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1BA 00 00 00 00 00 00 00 2739 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1C2 00 00 00 00 00 00 00 2740 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1CA 00 00 00 00 00 00 00 2741 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1D2 00 00 00 00 00 00 00 2742 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1DA 00 00 00 00 00 00 00 2743 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1E2 00 00 00 00 00 00 00 2744 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1EA 00 00 00 00 00 00 00 2745 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1F2 00 00 00 00 00 00 00 2746 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F1FA 00 00 00 00 00 00 00 2747 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F202 00 00 00 00 00 00 00 2748 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F20A 00 00 00 00 00 00 00 2749 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F212 00 00 00 00 00 00 00 2750 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F21A 00 00 00 00 00 00 00 2751 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F222 00 00 00 00 00 00 00 2752 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F22A 00 00 00 00 00 00 00 2753 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F232 00 00 00 00 00 00 00 2754 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F23A 00 00 00 00 00 00 00 2755 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F242 00 00 00 00 00 00 00 2756 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F24A 00 00 00 00 00 00 00 2757 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F252 00 00 00 00 00 00 00 2758 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F25A 00 00 00 00 00 00 00 2759 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F262 00 00 00 00 00 00 00 2760 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F26A 00 00 00 00 00 00 00 2761 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F272 00 00 00 00 00 00 00 2762 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F27A 00 00 00 00 00 00 00 2763 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F282 00 00 00 00 00 00 00 2764 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F28A 00 00 00 00 00 00 00 2765 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F292 00 00 00 00 00 00 00 2766 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F29A 00 00 00 00 00 00 00 2767 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2A2 00 00 00 00 00 00 00 2768 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2AA 00 00 00 00 00 00 00 2769 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2B2 00 00 00 00 00 00 00 2770 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2BA 00 00 00 00 00 00 00 2771 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2C2 00 00 00 00 00 00 00 2772 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2CA 00 00 00 00 00 00 00 2773 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2D2 00 00 00 00 00 00 00 2774 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2DA 00 00 00 00 00 00 00 2775 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2E2 00 00 00 00 00 00 00 2776 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2EA 00 00 00 00 00 00 00 2777 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2F2 00 00 00 00 00 00 00 2778 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F2FA 00 00 00 00 00 00 00 2779 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F302 00 00 00 00 00 00 00 2780 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F30A 00 00 00 00 00 00 00 2781 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F312 00 00 00 00 00 00 00 2782 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F31A 00 00 00 00 00 00 00 2783 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F322 00 00 00 00 00 00 00 2784 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F32A 00 00 00 00 00 00 00 2785 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F332 00 00 00 00 00 00 00 2786 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F33A 00 00 00 00 00 00 00 2787 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F342 00 00 00 00 00 00 00 2788 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F34A 00 00 00 00 00 00 00 2789 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F352 00 00 00 00 00 00 00 2790 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F35A 00 00 00 00 00 00 00 2791 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F362 00 00 00 00 00 00 00 2792 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F36A 00 00 00 00 00 00 00 2793 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F372 00 00 00 00 00 00 00 2794 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F37A 00 00 00 00 00 00 00 2795 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F382 00 00 00 00 00 00 00 2796 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F38A 00 00 00 00 00 00 00 2797 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F392 00 00 00 00 00 00 00 2798 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F39A 00 00 00 00 00 00 00 2799 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3A2 00 00 00 00 00 00 00 2800 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3AA 00 00 00 00 00 00 00 2801 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3B2 00 00 00 00 00 00 00 2802 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3BA 00 00 00 00 00 00 00 2803 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3C2 00 00 00 00 00 00 00 2804 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3CA 00 00 00 00 00 00 00 2805 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3D2 00 00 00 00 00 00 00 2806 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3DA 00 00 00 00 00 00 00 2807 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3E2 00 00 00 00 00 00 00 2808 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3EA 00 00 00 00 00 00 00 2809 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3F2 00 00 00 00 00 00 00 2810 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F3FA 00 00 00 00 00 00 00 2811 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F402 00 00 00 00 00 00 00 2812 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F40A 00 00 00 00 00 00 00 2813 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F412 00 00 00 00 00 00 00 2814 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F41A 00 00 00 00 00 00 00 2815 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F422 00 00 00 00 00 00 00 2816 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F42A 00 00 00 00 00 00 00 2817 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F432 00 00 00 00 00 00 00 2818 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F43A 00 00 00 00 00 00 00 2819 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F442 00 00 00 00 00 00 00 2820 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F44A 00 00 00 00 00 00 00 2821 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F452 00 00 00 00 00 00 00 2822 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F45A 00 00 00 00 00 00 00 2823 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F462 00 00 00 00 00 00 00 2824 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F46A 00 00 00 00 00 00 00 2825 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F472 00 00 00 00 00 00 00 2826 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F47A 00 00 00 00 00 00 00 2827 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F482 00 00 00 00 00 00 00 2828 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F48A 00 00 00 00 00 00 00 2829 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F492 00 00 00 00 00 00 00 2830 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F49A 00 00 00 00 00 00 00 2831 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4A2 00 00 00 00 00 00 00 2832 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4AA 00 00 00 00 00 00 00 2833 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4B2 00 00 00 00 00 00 00 2834 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4BA 00 00 00 00 00 00 00 2835 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4C2 00 00 00 00 00 00 00 2836 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4CA 00 00 00 00 00 00 00 2837 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4D2 00 00 00 00 00 00 00 2838 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4DA 00 00 00 00 00 00 00 2839 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4E2 00 00 00 00 00 00 00 2840 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4EA 00 00 00 00 00 00 00 2841 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4F2 00 00 00 00 00 00 00 2842 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F4FA 00 00 00 00 00 00 00 2843 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F502 00 00 00 00 00 00 00 2844 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F50A 00 00 00 00 00 00 00 2845 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F512 00 00 00 00 00 00 00 2846 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F51A 00 00 00 00 00 00 00 2847 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F522 00 00 00 00 00 00 00 2848 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F52A 00 00 00 00 00 00 00 2849 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F532 00 00 00 00 00 00 00 2850 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F53A 00 00 00 00 00 00 00 2851 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F542 00 00 00 00 00 00 00 2852 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F54A 00 00 00 00 00 00 00 2853 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F552 00 00 00 00 00 00 00 2854 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F55A 00 00 00 00 00 00 00 2855 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F562 00 00 00 00 00 00 00 2856 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F56A 00 00 00 00 00 00 00 2857 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F572 00 00 00 00 00 00 00 2858 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F57A 00 00 00 00 00 00 00 2859 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F582 00 00 00 00 00 00 00 2860 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F58A 00 00 00 00 00 00 00 2861 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F592 00 00 00 00 00 00 00 2862 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F59A 00 00 00 00 00 00 00 2863 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5A2 00 00 00 00 00 00 00 2864 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5AA 00 00 00 00 00 00 00 2865 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5B2 00 00 00 00 00 00 00 2866 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5BA 00 00 00 00 00 00 00 2867 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5C2 00 00 00 00 00 00 00 2868 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5CA 00 00 00 00 00 00 00 2869 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5D2 00 00 00 00 00 00 00 2870 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5DA 00 00 00 00 00 00 00 2871 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5E2 00 00 00 00 00 00 00 2872 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5EA 00 00 00 00 00 00 00 2873 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5F2 00 00 00 00 00 00 00 2874 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F5FA 00 00 00 00 00 00 00 2875 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F602 00 00 00 00 00 00 00 2876 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F60A 00 00 00 00 00 00 00 2877 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F612 00 00 00 00 00 00 00 2878 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F61A 00 00 00 00 00 00 00 2879 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F622 00 00 00 00 00 00 00 2880 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F62A 00 00 00 00 00 00 00 2881 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F632 00 00 00 00 00 00 00 2882 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F63A 00 00 00 00 00 00 00 2883 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F642 00 00 00 00 00 00 00 2884 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F64A 00 00 00 00 00 00 00 2885 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F652 00 00 00 00 00 00 00 2886 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F65A 00 00 00 00 00 00 00 2887 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F662 00 00 00 00 00 00 00 2888 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F66A 00 00 00 00 00 00 00 2889 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F672 00 00 00 00 00 00 00 2890 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F67A 00 00 00 00 00 00 00 2891 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F682 00 00 00 00 00 00 00 2892 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F68A 00 00 00 00 00 00 00 2893 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F692 00 00 00 00 00 00 00 2894 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F69A 00 00 00 00 00 00 00 2895 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6A2 00 00 00 00 00 00 00 2896 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6AA 00 00 00 00 00 00 00 2897 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6B2 00 00 00 00 00 00 00 2898 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6BA 00 00 00 00 00 00 00 2899 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6C2 00 00 00 00 00 00 00 2900 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6CA 00 00 00 00 00 00 00 2901 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6D2 00 00 00 00 00 00 00 2902 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6DA 00 00 00 00 00 00 00 2903 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6E2 00 00 00 00 00 00 00 2904 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6EA 00 00 00 00 00 00 00 2905 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6F2 00 00 00 00 00 00 00 2906 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F6FA 00 00 00 00 00 00 00 2907 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F702 00 00 00 00 00 00 00 2908 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F70A 00 00 00 00 00 00 00 2909 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F712 00 00 00 00 00 00 00 2910 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F71A 00 00 00 00 00 00 00 2911 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F722 00 00 00 00 00 00 00 2912 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F72A 00 00 00 00 00 00 00 2913 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F732 00 00 00 00 00 00 00 2914 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F73A 00 00 00 00 00 00 00 2915 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F742 00 00 00 00 00 00 00 2916 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F74A 00 00 00 00 00 00 00 2917 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F752 00 00 00 00 00 00 00 2918 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F75A 00 00 00 00 00 00 00 2919 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F762 00 00 00 00 00 00 00 2920 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F76A 00 00 00 00 00 00 00 2921 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F772 00 00 00 00 00 00 00 2922 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F77A 00 00 00 00 00 00 00 2923 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F782 00 00 00 00 00 00 00 2924 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F78A 00 00 00 00 00 00 00 2925 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F792 00 00 00 00 00 00 00 2926 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F79A 00 00 00 00 00 00 00 2927 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7A2 00 00 00 00 00 00 00 2928 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7AA 00 00 00 00 00 00 00 2929 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7B2 00 00 00 00 00 00 00 2930 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7BA 00 00 00 00 00 00 00 2931 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7C2 00 00 00 00 00 00 00 2932 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7CA 00 00 00 00 00 00 00 2933 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7D2 00 00 00 00 00 00 00 2934 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7DA 00 00 00 00 00 00 00 2935 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7E2 00 00 00 00 00 00 00 2936 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7EA 00 00 00 00 00 00 00 2937 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7F2 00 00 00 00 00 00 00 2938 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00F7FA 00 00 00 00 00 00 2939 .db 0x00,0x00,0x00,0x00,0x00,0x00 ;...... 00F800 2940 kbd_table_int: 00F800 30 31 32 33 34 35 36 2941 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F808 38 39 2E FF 2B 2D 3D 2942 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00F810 FF 61 62 63 64 65 66 2943 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00F818 68 69 6A 6B 6C 6D 6E 2944 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00F820 70 71 72 73 74 75 76 2945 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00F828 78 7A 79 FF FF FF FF 2946 .db 0x78,0x7a,0x79,0xff,0xff,0xff,0xff,0xff ;xzy..... FF 00F830 30 31 32 33 34 35 36 2947 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F838 38 39 7E 27 7D 2B 23 2948 .db 0x38,0x39,0x7e,0x27,0x7d,0x2b,0x23,0x7b ;89~'}+#{ 7B 00F840 FF FF 20 3C 2C 2E 2D 2949 .db 0xff,0xff,0x20,0x3c,0x2c,0x2e,0x2d,0x7c ;.. <,.-| 7C 00F848 1F 1C 1D 1E 9B FF 7F 2950 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00F850 FF 7F FF 09 0D DF 0B 2951 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00F858 FF FF 86 85 84 83 82 2952 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00F860 2953 kbd_table_int_sh: 00F860 E4 E2 EB E3 E8 E6 E9 2954 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00F868 EA E1 E5 FF 2A 2F E7 2955 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00F870 FF 41 42 43 44 45 46 2956 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00F878 48 49 4A 4B 4C 4D 4E 2957 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00F880 50 51 52 53 54 55 56 2958 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00F888 58 5A 59 FF FF FF FF 2959 .db 0x58,0x5a,0x59,0xff,0xff,0xff,0xff,0xff ;XZY..... FF 00F890 3D 21 22 40 24 25 26 2960 .db 0x3d,0x21,0x22,0x40,0x24,0x25,0x26,0x2f ;=!"@$%&/ 2F 00F898 28 29 3F 60 5D 2A 5E 2961 .db 0x28,0x29,0x3f,0x60,0x5d,0x2a,0x5e,0x5b ;()?`]*^[ 5B 00F8A0 FF FF 20 3E 3B 3A 5F 2962 .db 0xff,0xff,0x20,0x3e,0x3b,0x3a,0x5f,0x5c ;.. >;:_\ 5C 00F8A8 EC EF EE ED 9B FF 7F 2963 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00F8B0 FF 12 FF 09 0D DF 0C 2964 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00F8B8 FF FF 8C 8B 8A 89 88 2965 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00F8C0 2966 kbd_table_de: 00F8C0 30 31 32 33 34 35 36 2967 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F8C8 38 39 2E FF 2B 2D 3D 2968 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00F8D0 FF 61 62 63 64 65 66 2969 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00F8D8 68 69 6A 6B 6C 6D 6E 2970 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00F8E0 70 71 72 73 74 75 76 2971 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00F8E8 58 59 5A FF FF FF FF 2972 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00F8F0 30 31 32 33 34 35 36 2973 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F8F8 38 39 2D 5E 40 5B 5D 2974 .db 0x38,0x39,0x2d,0x5e,0x40,0x5b,0x5d,0x3a ;89-^@[]: 3A 00F900 FF FF 20 5C 2C 2E 2F 2975 .db 0xff,0xff,0x20,0x5c,0x2c,0x2e,0x2f,0x3b ;.. \,./; 3B 00F908 1F 1C 1D 1E 9B FF 7F 2976 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00F910 FF 7F FF 09 0D DF 0B 2977 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00F918 FF FF 86 85 84 83 82 2978 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00F920 E4 E2 EB E3 E8 E6 E9 2979 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00F928 EA E1 E5 FF 2A 2F E7 2980 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00F930 FF 41 42 43 44 45 46 2981 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00F938 48 49 4A 4B 4C 4D 4E 2982 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00F940 50 51 52 53 54 55 56 2983 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00F948 58 59 5A FF FF FF FF 2984 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00F950 5F 21 22 23 24 25 26 2985 .db 0x5f,0x21,0x22,0x23,0x24,0x25,0x26,0x27 ;_!"#$%&' 27 00F958 28 29 3D 7E 60 7B 7D 2986 .db 0x28,0x29,0x3d,0x7e,0x60,0x7b,0x7d,0x2a ;()=~`{}* 2A 00F960 FF FF 20 7C 3C 3E 3F 2987 .db 0xff,0xff,0x20,0x7c,0x3c,0x3e,0x3f,0x2b ;.. |<>?+ 2B 00F968 EC EF EE ED 9B FF 7F 2988 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00F970 FF 12 FF 09 0D DF 0C 2989 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00F978 FF FF 8C 8B 8A 89 88 2990 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00F980 2991 kbd_table_us: 00F980 30 31 32 33 34 35 36 2992 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F988 38 39 2E FF 2B 2D 3D 2993 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00F990 FF 71 62 63 64 65 66 2994 .db 0xff,0x71,0x62,0x63,0x64,0x65,0x66,0x67 ;.qbcdefg 67 00F998 68 69 6A 6B 6C 2C 6E 2995 .db 0x68,0x69,0x6a,0x6b,0x6c,0x2c,0x6e,0x6f ;hijkl,no 6F 00F9A0 70 61 72 73 74 75 76 2996 .db 0x70,0x61,0x72,0x73,0x74,0x75,0x76,0x7a ;parstuvz 7A 00F9A8 78 79 77 FF FF FF FF 2997 .db 0x78,0x79,0x77,0xff,0xff,0xff,0xff,0xff ;xyw..... FF 00F9B0 30 31 32 33 34 35 36 2998 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00F9B8 38 39 24 21 5E 26 23 2999 .db 0x38,0x39,0x24,0x21,0x5e,0x26,0x23,0x7c ;89$!^&#| 7C 00F9C0 FF FF 20 3C 2E 2F 3D 3000 .db 0xff,0xff,0x20,0x3c,0x2e,0x2f,0x3d,0x6d ;.. <./=m 6D 00F9C8 1F 1C 1D 1E 9B FF 7F 3001 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00F9D0 FF 7F FF 09 0D DF 0B 3002 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00F9D8 FF FF 86 85 84 83 82 3003 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00F9E0 E4 E2 EB E3 E8 E6 E9 3004 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00F9E8 EA E1 E5 FF 2A 2F E7 3005 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00F9F0 FF 51 42 43 44 45 46 3006 .db 0xff,0x51,0x42,0x43,0x44,0x45,0x46,0x47 ;.QBCDEFG 47 00F9F8 48 49 4A 4B 4C 3B 4E 3007 .db 0x48,0x49,0x4a,0x4b,0x4c,0x3b,0x4e,0x4f ;HIJKL;NO 4F 00FA00 50 41 52 53 54 55 56 3008 .db 0x50,0x41,0x52,0x53,0x54,0x55,0x56,0x5a ;PARSTUVZ 5A 00FA08 58 59 57 FF FF FF FF 3009 .db 0x58,0x59,0x57,0xff,0xff,0xff,0xff,0xff ;XYW..... FF 00FA10 40 2A 7B 22 27 28 2D 3010 .db 0x40,0x2a,0x7b,0x22,0x27,0x28,0x2d,0x7d ;@*{"'(-} 7D 00FA18 5F 5C 29 5D 7E 60 2B 3011 .db 0x5f,0x5c,0x29,0x5d,0x7e,0x60,0x2b,0x25 ;_\)]~`+% 25 00FA20 FF FF 20 3E 3A 3F 5B 3012 .db 0xff,0xff,0x20,0x3e,0x3a,0x3f,0x5b,0x4d ;.. >:?[M 4D 00FA28 EC EF EE ED 9B FF 7F 3013 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00FA30 FF 12 FF 09 0D DF 0C 3014 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FA38 FF FF 8C 8B 8A 89 88 3015 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00FA40 3016 kbd_table_fr: 00FA40 30 31 32 33 34 35 36 3017 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FA48 38 39 2E FF 2B 2D 3D 3018 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00FA50 FF 61 62 63 64 65 66 3019 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00FA58 68 69 6A 6B 6C 6D 6E 3020 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00FA60 70 71 72 73 74 75 76 3021 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00FA68 78 79 7A FF FF FF FF 3022 .db 0x78,0x79,0x7a,0xff,0xff,0xff,0xff,0xff ;xyz..... FF 00FA70 30 31 32 33 34 35 36 3023 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FA78 38 39 2D 5E 40 5B 5D 3024 .db 0x38,0x39,0x2d,0x5e,0x40,0x5b,0x5d,0x3a ;89-^@[]: 3A 00FA80 FF FF 20 3C 2C 2E 2F 3025 .db 0xff,0xff,0x20,0x3c,0x2c,0x2e,0x2f,0x3b ;.. <,./; 3B 00FA88 1F 1C 1D 1E 9B FF 7F 3026 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00FA90 FF 7F FF 09 0D DF 0B 3027 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00FA98 FF FF 86 85 84 83 82 3028 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00FAA0 E4 E2 EB E3 E8 E6 E9 3029 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00FAA8 EA E1 E5 FF 2A 2F E7 3030 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00FAB0 FF 41 42 43 44 45 46 3031 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00FAB8 48 49 4A 4B 4C 4D 4E 3032 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00FAC0 50 51 52 53 54 55 56 3033 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00FAC8 58 59 5A FF FF FF FF 3034 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00FAD0 3D 21 22 23 24 25 26 3035 .db 0x3d,0x21,0x22,0x23,0x24,0x25,0x26,0x27 ;=!"#$%&' 27 00FAD8 28 29 5F 7E 60 7B 7D 3036 .db 0x28,0x29,0x5f,0x7e,0x60,0x7b,0x7d,0x2a ;()_~`{}* 2A 00FAE0 FF FF 20 3E 5C 7C 3F 3037 .db 0xff,0xff,0x20,0x3e,0x5c,0x7c,0x3f,0x2b ;.. >\|?+ 2B 00FAE8 EC EF EE ED 9B FF 7F 3038 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00FAF0 FF 12 FF 09 0D DF 0C 3039 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FAF8 FF FF 8C 8B 8A 89 88 3040 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00FB00 3041 kbd_table_uk: 00FB00 30 31 32 33 34 35 36 3042 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FB08 38 39 2E FF 2B 2D 3D 3043 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00FB10 FF 61 62 63 64 65 66 3044 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00FB18 68 69 6A 6B 6C 2C 6E 3045 .db 0x68,0x69,0x6a,0x6b,0x6c,0x2c,0x6e,0x6f ;hijkl,no 6F 00FB20 70 71 72 73 74 75 76 3046 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x7a ;pqrstuvz 7A 00FB28 78 79 77 FF FF FF FF 3047 .db 0x78,0x79,0x77,0xff,0xff,0xff,0xff,0xff ;xyw..... FF 00FB30 30 31 32 33 34 35 36 3048 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FB38 38 39 24 5E 7E 26 23 3049 .db 0x38,0x39,0x24,0x5e,0x7e,0x26,0x23,0x7c ;89$^~&#| 7C 00FB40 FF FF 20 3C 2E 2F 5B 3050 .db 0xff,0xff,0x20,0x3c,0x2e,0x2f,0x5b,0x6d ;.. <./[m 6D 00FB48 1F 1C 1D 1E 9B FF 7F 3051 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00FB50 FF 7F FF 09 0D DF 0B 3052 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00FB58 FF FF 86 85 84 83 82 3053 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00FB60 E4 E2 EB E3 E8 E6 E9 3054 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00FB68 EA E1 E5 FF 2A 2F E7 3055 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00FB70 FF 41 42 43 44 45 46 3056 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00FB78 48 49 4A 4B 4C 3B 4E 3057 .db 0x48,0x49,0x4a,0x4b,0x4c,0x3b,0x4e,0x4f ;HIJKL;NO 4F 00FB80 50 51 52 53 54 55 56 3058 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x5a ;PQRSTUVZ 5A 00FB88 58 59 57 FF FF FF FF 3059 .db 0x58,0x59,0x57,0xff,0xff,0xff,0xff,0xff ;XYW..... FF 00FB90 40 2A 7B 22 27 28 2D 3060 .db 0x40,0x2a,0x7b,0x22,0x27,0x28,0x2d,0x7d ;@*{"'(-} 7D 00FB98 5F 5C 29 5D 3D 60 2B 3061 .db 0x5f,0x5c,0x29,0x5d,0x3d,0x60,0x2b,0x25 ;_\)]=`+% 25 00FBA0 FF FF 20 3E 3A 3F 21 3062 .db 0xff,0xff,0x20,0x3e,0x3a,0x3f,0x21,0x4d ;.. >:?!M 4D 00FBA8 EC EF EE ED 9B FF 7F 3063 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00FBB0 FF 12 FF 09 0D DF 0C 3064 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FBB8 FF FF 8C 8B 8A 89 88 3065 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00FBC0 3066 kbd_table_it: 00FBC0 30 31 32 33 34 35 36 3067 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FBC8 38 39 2E FF 2B 2D 3D 3068 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00FBD0 FF 61 62 63 64 65 66 3069 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00FBD8 68 69 6A 6B 6C 6D 6E 3070 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00FBE0 70 71 72 73 74 75 76 3071 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00FBE8 78 79 7A FF FF FF FF 3072 .db 0x78,0x79,0x7a,0xff,0xff,0xff,0xff,0xff ;xyz..... FF 00FBF0 30 31 32 33 34 35 36 3073 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FBF8 38 39 2D 5E 40 5B 5D 3074 .db 0x38,0x39,0x2d,0x5e,0x40,0x5b,0x5d,0x3a ;89-^@[]: 3A 00FC00 FF FF 20 5C 2C 2E 2F 3075 .db 0xff,0xff,0x20,0x5c,0x2c,0x2e,0x2f,0x3b ;.. \,./; 3B 00FC08 1F 1C 1D 1E 9B FF 7F 3076 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00FC10 FF 7F FF 09 0D DF 0B 3077 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00FC18 FF FF 86 85 84 83 82 3078 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00FC20 E4 E2 EB E3 E8 E6 E9 3079 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00FC28 EA E1 E5 FF 2A 2F E7 3080 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00FC30 FF 41 42 43 44 45 46 3081 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00FC38 48 49 4A 4B 4C 4D 4E 3082 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00FC40 50 51 52 53 54 55 56 3083 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00FC48 58 59 5A FF FF FF FF 3084 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00FC50 5F 21 22 23 24 25 26 3085 .db 0x5f,0x21,0x22,0x23,0x24,0x25,0x26,0x27 ;_!"#$%&' 27 00FC58 28 29 3D 7E 60 7B 7D 3086 .db 0x28,0x29,0x3d,0x7e,0x60,0x7b,0x7d,0x2a ;()=~`{}* 2A 00FC60 FF FF 20 7C 3C 3E 3F 3087 .db 0xff,0xff,0x20,0x7c,0x3c,0x3e,0x3f,0x2b ;.. |<>?+ 2B 00FC68 EC EF EE ED 9B FF 7F 3088 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00FC70 FF 12 FF 09 0D DF 0C 3089 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FC78 FF FF 8C 8B 8A 89 88 3090 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00FC80 3091 kbd_table_es: 00FC80 30 31 32 33 34 35 36 3092 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FC88 38 39 2E FF 2B 2D 3D 3093 .db 0x38,0x39,0x2e,0xff,0x2b,0x2d,0x3d,0xff ;89..+-=. FF 00FC90 FF 61 62 63 64 65 66 3094 .db 0xff,0x61,0x62,0x63,0x64,0x65,0x66,0x67 ;.abcdefg 67 00FC98 68 69 6A 6B 6C 6D 6E 3095 .db 0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f ;hijklmno 6F 00FCA0 70 71 72 73 74 75 76 3096 .db 0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x77 ;pqrstuvw 77 00FCA8 78 79 7A FF FF FF FF 3097 .db 0x78,0x79,0x7a,0xff,0xff,0xff,0xff,0xff ;xyz..... FF 00FCB0 30 31 32 33 34 35 36 3098 .db 0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37 ;01234567 37 00FCB8 38 39 2D 5E 40 5B 5D 3099 .db 0x38,0x39,0x2d,0x5e,0x40,0x5b,0x5d,0x3a ;89-^@[]: 3A 00FCC0 FF FF 20 5C 2C 2E 2F 3100 .db 0xff,0xff,0x20,0x5c,0x2c,0x2e,0x2f,0x3b ;.. \,./; 3B 00FCC8 1F 1C 1D 1E 9B FF 7F 3101 .db 0x1f,0x1c,0x1d,0x1e,0x9b,0xff,0x7f,0x1b ;........ 1B 00FCD0 FF 7F FF 09 0D DF 0B 3102 .db 0xff,0x7f,0xff,0x09,0x0d,0xdf,0x0b,0x03 ;....._.. 03 00FCD8 FF FF 86 85 84 83 82 3103 .db 0xff,0xff,0x86,0x85,0x84,0x83,0x82,0x81 ;........ 81 00FCE0 E4 E2 EB E3 E8 E6 E9 3104 .db 0xe4,0xe2,0xeb,0xe3,0xe8,0xe6,0xe9,0xe0 ;dbkchfi` E0 00FCE8 EA E1 E5 FF 2A 2F E7 3105 .db 0xea,0xe1,0xe5,0xff,0x2a,0x2f,0xe7,0xff ;jae.*/g. FF 00FCF0 FF 41 42 43 44 45 46 3106 .db 0xff,0x41,0x42,0x43,0x44,0x45,0x46,0x47 ;.ABCDEFG 47 00FCF8 48 49 4A 4B 4C 4D 4E 3107 .db 0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f ;HIJKLMNO 4F 00FD00 50 51 52 53 54 55 56 3108 .db 0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57 ;PQRSTUVW 57 00FD08 58 59 5A FF FF FF FF 3109 .db 0x58,0x59,0x5a,0xff,0xff,0xff,0xff,0xff ;XYZ..... FF 00FD10 5F 21 22 23 24 25 26 3110 .db 0x5f,0x21,0x22,0x23,0x24,0x25,0x26,0x27 ;_!"#$%&' 27 00FD18 28 29 3D 7E 60 7B 7D 3111 .db 0x28,0x29,0x3d,0x7e,0x60,0x7b,0x7d,0x2a ;()=~`{}* 2A 00FD20 FF FF 20 7C 3C 3E 3F 3112 .db 0xff,0xff,0x20,0x7c,0x3c,0x3e,0x3f,0x2b ;.. |<>?+ 2B 00FD28 EC EF EE ED 9B FF 7F 3113 .db 0xec,0xef,0xee,0xed,0x9b,0xff,0x7f,0x1b ;lonm.... 1B 00FD30 FF 12 FF 09 0D DF 0C 3114 .db 0xff,0x12,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FD38 FF FF 8C 8B 8A 89 88 3115 .db 0xff,0xff,0x8c,0x8b,0x8a,0x89,0x88,0x87 ;........ 87 00FD40 3116 crt_table_ntsc: 00FD40 38 28 2E 55 20 06 18 3117 .db 0x38,0x28,0x2e,0x55,0x20,0x06,0x18,0x1c ;8(.U ... 1C 00FD48 00 07 47 07 00 00 00 3118 .db 0x00,0x07,0x47,0x07,0x00,0x00,0x00,0x00 ;..G..... 00 00FD50 00 00 7E 50 5F 5C 1D 3119 .db 0x00,0x00,0x7e,0x50,0x5f,0x5c,0x1d,0x01 ;..~P_\.. 01 00FD58 18 1A 00 08 48 08 00 3120 .db 0x18,0x1a,0x00,0x08,0x48,0x08,0x00,0x00 ;....H... 00 00FD60 00 00 00 00 3121 .db 0x00,0x00,0x00,0x00 ;.... 3122 ; unchecked data source 00FD64 8B 82 08 89 84 FF 7F 3123 .db 0x8b,0x82,0x08,0x89,0x84,0xff,0x7f,0x1b ;........ 1B 00FD6C FF 96 FF 09 0D DF 8F 3124 .db 0xff,0x96,0xff,0x09,0x0d,0xdf,0x8f,0x03 ;....._.. 03 00FD74 FF FF 8C 8A 88 87 86 3125 .db 0xff,0xff,0x8c,0x8a,0x88,0x87,0x86,0x85 ;........ 85 00FD7C EC EF EE ED 84 FF 7F 3126 .db 0xec,0xef,0xee,0xed,0x84,0xff,0x7f,0x1b ;lonm.... 1B 00FD84 FF 95 FF 09 0D DF 0C 3127 .db 0xff,0x95,0xff,0x09,0x0d,0xdf,0x0c,0x03 ;....._.. 03 00FD8C FF FF 80 94 93 92 91 3128 .db 0xff,0xff,0x80,0x94,0x93,0x92,0x91,0x90 ;........ 90 00FD94 95 82 08 89 8B 96 1C 3129 .db 0x95,0x82,0x08,0x89,0x8b,0x96,0x1c,0x12 ;........ 12 00FD9C 00 00 00 00 00 00 00 3130 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDA4 00 00 00 00 00 00 00 3131 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDAC 00 00 00 00 00 00 00 3132 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDB4 00 00 00 00 00 00 00 3133 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDBC 00 00 00 00 00 00 00 3134 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDC4 00 00 00 00 00 00 00 3135 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDCC 00 00 00 00 00 00 00 3136 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDD4 00 00 00 00 00 00 00 3137 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDDC 00 00 00 00 00 00 00 3138 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDE4 00 00 00 00 00 00 00 3139 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDEC 00 00 00 00 00 00 00 3140 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDF4 00 00 00 00 00 00 00 3141 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FDFC 00 00 00 00 00 00 00 3142 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE04 00 00 00 00 00 00 00 3143 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE0C 00 00 00 00 00 00 00 3144 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE14 00 00 00 00 00 00 00 3145 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE1C 00 00 00 00 00 00 00 3146 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE24 00 00 00 00 00 00 00 3147 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE2C 00 00 00 00 00 00 00 3148 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE34 00 00 00 00 00 00 00 3149 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE3C 00 00 00 00 00 00 00 3150 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE44 00 00 00 00 00 00 00 3151 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE4C 00 00 00 00 00 00 00 3152 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE54 00 00 00 00 00 00 00 3153 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE5C 00 00 00 00 00 00 00 3154 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE64 00 00 00 00 00 00 00 3155 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE6C 00 00 00 00 00 00 00 3156 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE74 00 00 00 00 00 00 00 3157 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE7C 00 00 00 00 00 00 00 3158 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE84 00 00 00 00 00 00 00 3159 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE8C 00 00 00 00 00 00 00 3160 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE94 00 00 00 00 00 00 00 3161 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FE9C 00 00 00 00 00 00 00 3162 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEA4 00 00 00 00 00 00 00 3163 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEAC 00 00 00 00 00 00 00 3164 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEB4 00 00 00 00 00 00 00 3165 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEBC 00 00 00 00 00 00 00 3166 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEC4 00 00 00 00 00 00 00 3167 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FECC 00 00 00 00 00 00 00 3168 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FED4 00 00 00 00 00 00 00 3169 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEDC 00 00 00 00 00 00 00 3170 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEE4 00 00 00 00 00 00 00 3171 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEEC 00 00 00 00 00 00 00 3172 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEF4 00 00 00 00 00 00 00 3173 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FEFC 00 00 00 00 00 00 00 3174 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF04 00 00 00 00 00 00 00 3175 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF0C 00 00 00 00 00 00 00 3176 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF14 00 00 00 00 00 00 00 3177 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF1C 00 00 00 00 00 00 00 3178 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF24 00 00 00 00 00 00 00 3179 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF2C 00 00 00 00 00 00 00 3180 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF34 00 00 00 00 00 00 00 3181 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF3C 00 00 00 00 00 00 00 3182 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF44 00 00 00 00 00 00 00 3183 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF4C 00 00 00 00 00 00 00 3184 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF54 00 00 00 00 00 00 00 3185 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF5C 00 00 00 00 00 00 00 3186 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF64 00 00 00 00 00 00 00 3187 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF6C 00 00 00 00 00 00 00 3188 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF74 00 00 00 00 00 00 00 3189 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF7C 00 00 00 00 00 00 00 3190 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF84 00 00 00 00 00 00 00 3191 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF8C 00 00 00 00 00 00 00 3192 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF94 00 00 00 00 00 00 00 3193 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FF9C 00 00 00 00 00 00 00 3194 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFA4 00 00 00 00 00 00 00 3195 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFAC 00 00 00 00 00 00 00 3196 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFB4 00 00 00 00 00 00 00 3197 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFBC 00 00 00 00 00 00 00 3198 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFC4 00 00 00 00 00 00 00 3199 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFCC 00 00 00 00 00 00 00 3200 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFD4 00 00 00 00 00 00 00 3201 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFDC 00 00 00 00 00 00 00 3202 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFE4 00 00 00 00 00 00 00 3203 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFEC 00 00 00 00 00 00 00 3204 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFF4 00 00 00 00 00 00 00 3205 .db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;........ 00 00FFFC 00 00 00 00 3206 .db 0x00,0x00,0x00,0x00 ;.... 3207 ; end of source ASxxxx Assembler V02.00 + NoICE + SDCC mods (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80), page 1. Hexadecimal [24-Bits] Symbol Table .__.$$$. = 002710 GL .__.ABS. = 000000 G .__.CPU. = 000000 GL .__.H$L. = 000000 GL ATTR0_NONE = 000030 G ATTR3_BLINK_INVERSE = 000033 G ATTR_WIDTH40 = 000030 G ATTR_WIDTH80 = 000031 G BWS = 00F000 G CEN_DATA = 000030 G CEN_RESET = 000001 G CEN_STROBE = 000002 G CFG10 = 000010 G CFG20 = 000020 G CMT_MOTOR_START = 000003 G CMT_RS232_SELECT = 000002 G COLOR0_BLACK = 000030 G COLOR7_WHITE = 000037 G COLOR_COUNT = 000008 G COUNTRY_07 = 000007 G COUNTRY_DE = 000001 G COUNTRY_ES = 000006 G COUNTRY_FR = 000003 G COUNTRY_INTERNATIONAL = 000000 G COUNTRY_IT = 000005 G COUNTRY_UK = 000004 G COUNTRY_US = 000002 G 0 CRTOUT 000412 GR CRT_DATA = 000051 G CRT_REG = 000050 G CRT_RESET = 000000 G DIO_Data_input_output = 000006 G DMA = 000060 G DMA_MODE_SET = 000068 G 0 ENTRY 000FC1 GR 0 Esc0C_initialize_screen_driver 000CE1 GR 0 Esc53_screen_width_set 000E75 GR 0 Esc55_color_attribute_set 000C34 GR 0 Esc56_screen_attribute_set 000C6A GR FDC_CMD_SENSE_INTERRUPT_STATE = 000008 G FDC_UNIT = 0000F0 G GERMAN_MAX_ASCII_CODE = 00007E G GLED = 000004 G HIGH_ZERO = 000000 G ID_IS_BASIC = 00007E G ID_JMP = 0000C3 G KBD_BREAK = 000007 G KBD_COLUMNS = 00000C G KBD_POSITION_COMMAND = 00004D G KBD_POSITION_CTRL = 00004F G KBD_POSITION_GRAPH = 000056 G KBD_POSITION_SHIFT = 000053 G KBD_POSITION_SHIFT_LOCK = 00004E G MASK_CAPITALIZE = 00005F G MASK_COUNTRY_BITS = 000007 G MASK_COUNTRY_SELECT = 00001C G MAX_ADDRESS = 00FFFF G MODIFIER_SHIFT = 000001 G MONINH = 000003 G NO = 000000 G OFF = 000000 G OFFSET_COLOR = 000800 G ON = 000001 G PIC_ICW1 = 000070 G PIC_ICW2 = 000071 G PIC_OCW1 = 000071 G REG_0 = 000000 G REG_14_CURSOR_H = 00000E G REG_14_CURSOR_L = 00000F G ROM_ACCESS_EN = 000007 G ROM_PACK_16K = 00A000 G ROM_PACK_8K = 00C000 G ROM_PACK_EN = 000006 G RQM_Request_for_master = 000007 G SCREEN_HEIGHT = 000018 G SIZE4K = 001000 G SLED = 000005 G STATUS10 = 000010 G STATUS30 = 000030 G STATUS_GLED = 000002 G STATUS_KBD = 000020 G STATUS_SLED = 000000 G TOGGLE_GLED = 000004 G TOGGLE_SLED = 000001 G UART_CMD = 000041 G UART_DATA = 000040 G UART_STATUS = 000041 G UPD765_DATA = 0000F8 G UPD765_MAIN_STATUS = 0000F9 G UPD765_STATE = 0000F0 G UPPER_MONITOR_SEL = 000006 G VK_DEL = 00007F G VK_DOWN = 00001F G VK_ENTER = 00000D G VK_ESC = 00001B G VK_LEFT = 00001D G VK_NL = 00000A G VK_RIGHT = 00001C G VK_UP = 00001E G VRAM_ATTR_INVERS = 000080 G VRAM_ATTR_MASK = 0000C0 G YES = 0000FF G _BUZZER_ON = 000004 G _CEN_ACKNOWLEDGE = 000002 G _CEN_BUSY = 000003 G _CRT80 = 000000 G _CRT_DISPLAY = 000007 G _CRT_NTSC = 000006 G _CRT_VSYNC_PERIOD = 000001 G _DISPLAY_INHIBIT = 000001 G _DRV_CTRL_84 = 000003 G _DRV_CTRL_INTERNAL = 000002 G _DRV_FG_BG_SAME_COLOR = 000006 G _DRV_NO_CLS = 000007 G _DSR = 000007 G _FDD_PRESENT = 000000 G _GFX_AVAILABLE = 000001 G _PRT_SERIAL = 000005 G _RxRDY = 000001 G _SIOC = 000000 G _TxRDY = 000000 G _VRAM_ATTR_INVERS = 000007 G 0 add_column_size 0009E3 GR 0 alternate_keyboard_table 000CD1 GR 0 asc_07 000858 GR 0 asc_08 00085B GR 0 asc_0a 00085E GR 0 asc_0c 000861 GR 0 asc_0d 000864 GR 0 asc_12 000867 GR 0 asc_1c 00086A GR 0 asc_1d 00086D GR 0 asc_1e 000870 GR 0 asc_1f 000873 GR 0 asc_7f 000876 GR 0 asc_99 000879 GR 0 asc_9a 00087C GR 0 attrib_color 000467 GR basic_start = 00003B G 0 beep_delay 0004D2 GR bios_rom = 00F000 G 0 boot 000FF0 GR boot_sector = 00C200 G 0 buzzer_off 000A9E GR 0 buzzer_on 000A96 GR 0 calc_column_offset 0009DE GR 0 cfg10_settings 000468 GR 0 cfg20_settings 000469 GR 0 cfg_esc_screen_drv 00046A GR 0 check_cursor_range 000E11 GR 0 check_cursor_range_fail 000E28 GR 0 chk_break 000AA4 GR 0 chk_color_range 000C83 GR 0 chk_ready 000AFF GR 0 chk_tx_rdy 000B08 GR 0 chr_03 000891 GR 0 chr_03_fill 000892 GR 0 chr_12 000894 GR 0 chr_12_fill 000895 GR 0 chr_7f 000897 GR 0 chr_7f_fill 000898 GR 0 chr_backspace 000A74 GR 0 chr_beep 000A7E GR 0 chr_carrige_return 000909 GR 0 chr_clear_screen 0009E8 GR 0 chr_cursor_down 000A5F GR 0 chr_cursor_left 000A35 GR 0 chr_cursor_right 000A50 GR 0 chr_cursor_up 000A44 GR 0 chr_inverse_off 00089A GR 0 chr_inverse_on 0008A0 GR 0 chr_line_feed 000880 GR 0 clear_kbd_modifiers 00064B GR 0 cmp_kbd_entry 0005FE GR cold_start = 000000 G 0 color_attribute 000499 GR 0 column_count 000462 GR 0 com_read_byte 000AF6 GR 0 com_rx_ready 000B10 GR 0 com_tx_ready 000AE3 GR 0 com_write_byte 000AEC GR 0 copy_kbd_table 001064 GR 0 crt_set_cursor 000931 GR 0 crt_set_cursor_at_row_start 00098C GR 0 crt_table40 000ECF GR crt_table40_size = 000010 G 0 crt_table80 000EE1 GR crt_table80_size = 000010 G 0 crt_table_ntsc 001D40 GR crt_table_ntsc_size = 000024 G 0 crt_write_reg 000EB5 GR 0 cursor_abs 000490 GR 0 cursor_abs_color 000492 GR 0 cursor_column 00046E GR 0 cursor_row 00046D GR 0 cursor_row_adjusted 000A69 GR 0 cursor_start 000470 GR 0 decrement_kbd_debounce_cnt 000641 GR 0 delay 00067B GR 0 dev_fdd_wait_ready 0003FD GR 0 dev_kbd_inkey 00040F GR 0 dev_kbd_status 00040C GR 0 dev_monitor 000400 GR 0 dev_printer_write_byte 000439 GR 0 dev_serial_read_byte 000406 GR 0 dev_serial_ready 000403 GR 0 dev_serial_tx_ready 000433 GR 0 dev_serial_write_byte 000436 GR 0 display_inhibit 000A0F GR 0 display_status_set 000A21 GR 0 enable_protocol_printer 000257 GR 0 erase_line 000DCF GR 0 erase_rest_of_line 000D99 GR 0 fdc_cmd_init 00108B GR fdc_cmd_init_size = 000005 G 0 fdc_cmd_read_boot 001090 GR fdc_cmd_read_boot_size = 000009 G 0 fdc_read_byte 0010A9 GR 0 fdc_write_byte 00109E GR 0 fdc_write_byte_ix 001099 GR 0 fdd_available 000F98 GR 0 fdw_write_next_byte 0010DC GR 0 fill_cnt 000DBA GR 0 function_0c 000C13 GR 0 function_4a 000DDD GR 0 function_more_0c1 000E2A GR 0 function_more_0c10 000D1B GR 0 function_more_0c11 000D65 GR 0 function_more_0c12 000E68 GR 0 function_more_0c13 000CED GR 0 function_more_0c14 000D0E GR 0 function_more_0c15 000C3D GR 0 function_more_0c17 000D42 GR 0 function_more_0c2 000D35 GR 0 function_more_0c3 000E5F GR 0 function_more_0c4 000DE7 GR 0 function_more_0c5 000DFC GR 0 get_char 000762 GR 0 get_char_echoed 0003F2 GR 0 get_cursor_abs 0009CC GR 0 get_cursor_pos 000CA6 GR 0 get_hex_digit 000F34 GR 0 get_hex_number 000F53 GR 0 get_kbd_table_address 00105E GR 0 go_basic 000045 GR 0 go_monitor 000060 GR 0 graphic_mode_on 000C18 GR id_basic = 000008 G 0 init_bios 000000 GR 0 init_crt_param 00106D GR 0 init_kbd_table 00102C GR 0 init_pic 00107E GR 0 init_serial 000B2C GR 0 init_system 001010 GR 0 int0_timer 000F00 GR 0 int1_rx_rdy 000F04 GR 0 int2_tx_rdy 000F08 GR 0 int3_extint2 000F0C GR 0 int4_extint1 000F10 GR 0 int5_unused 000F14 GR 0 int6_unused 000F18 GR 0 int7_vint 000F1C GR 0 is_vsync 000A16 GR 0 just_go_back 00027D GR 0 kbd_ascii 00048F GR 0 kbd_buffer_check_colum 00068C GR 0 kbd_buffer_clear 0005A3 GR 0 kbd_buffer_clear_beep 00059D GR 0 kbd_copy_state_hl 00066E GR 0 kbd_debounce_cnt 000471 GR 0 kbd_key_found 0005D5 GR 0 kbd_matrix_buffer 000472 GR 0 kbd_matrix_buffer2 00047E GR kbd_matrix_buffer2_size = 00000C G kbd_matrix_buffer_size = 00000C G 0 kbd_modifiers 00048B GR 0 kbd_position 00048E GR 0 kbd_scan_columns 000672 GR 0 kbd_status_internal 0005B1 GR 0 kbd_table_de 0018C0 GR kbd_table_de_size = 0000C0 G 0 kbd_table_es 001C80 GR kbd_table_es_size = 0000C0 G 0 kbd_table_fr 001A40 GR kbd_table_fr_size = 0000C0 G 0 kbd_table_int 001800 GR 0 kbd_table_int_sh 001860 GR kbd_table_int_sh_size = 000060 G kbd_table_int_size = 000060 G 0 kbd_table_it 001BC0 GR kbd_table_it_size = 0000C0 G 0 kbd_table_lookup 0004DD GR kbd_table_lookup_size = 0000C0 G 0 kbd_table_uk 001B00 GR kbd_table_uk_size = 0000C0 G 0 kbd_table_us 001980 GR kbd_table_us_size = 0000C0 G 0 key_code 000498 GR 0 key_found 000C2A GR 0 led_status 00046F GR 0 loop_find_first_key 0005CA GR 0 lpt_busy 000AB5 GR 0 lpt_write_byte 000AC2 GR 0 m_e06d 00006D GR 0 m_e07f 00007F GR 0 m_e089 000089 GR 0 m_e0cd 0000CD GR 0 m_e0d0 0000D0 GR 0 m_e0db 0000DB GR 0 m_e0e3 0000E3 GR 0 m_e0ec 0000EC GR 0 m_e14e 00014E GR 0 m_e157 000157 GR 0 m_e15e 00015E GR 0 m_e16c 00016C GR 0 m_e178 000178 GR 0 m_e19c 00019C GR 0 m_e1a9 0001A9 GR 0 m_e1c9 0001C9 GR 0 m_e1ea 0001EA GR 0 m_e21d 00021D GR 0 m_e22e 00022E GR 0 m_e262 000262 GR 0 m_e269 000269 GR 0 m_e282 000282 GR 0 m_e299 000299 GR 0 m_e2a7 0002A7 GR 0 m_e2b6 0002B6 GR 0 m_e2c3 0002C3 GR 0 m_e2d0 0002D0 GR 0 m_e2d5 0002D5 GR 0 m_e2dc 0002DC GR 0 m_e38d 00038D GR 0 m_e393 000393 GR 0 m_e398 000398 GR 0 m_e39c 00039C GR 0 m_e3ab 0003AB GR 0 m_e3b2 0003B2 GR 0 m_e3ba 0003BA GR 0 m_e3bb 0003BB GR 0 m_e3bf 0003BF GR 0 m_e3e0 0003E0 GR 0 m_e445 000445 GR 0 m_e5e1 0005E1 GR 0 m_e5e3 0005E3 GR 0 m_e5e7 0005E7 GR 0 m_e647 000647 GR 0 m_e64f 00064F GR 0 m_e656 000656 GR 0 m_e664 000664 GR 0 m_e66a 00066A GR 0 m_e682 000682 GR 0 m_e696 000696 GR 0 m_e69d 00069D GR 0 m_e6a0 0006A0 GR 0 m_e6a8 0006A8 GR 0 m_e6ae 0006AE GR 0 m_e6c3 0006C3 GR 0 m_e6d4 0006D4 GR 0 m_e6ec 0006EC GR 0 m_e6f6 0006F6 GR 0 m_e6ff 0006FF GR 0 m_e70f 00070F GR 0 m_e729 000729 GR 0 m_e72c 00072C GR 0 m_e739 000739 GR 0 m_e765 000765 GR 0 m_e77a 00077A GR 0 m_e794 000794 GR 0 m_e799 000799 GR 0 m_e7a2 0007A2 GR 0 m_e7a8 0007A8 GR 0 m_e7cc 0007CC GR 0 m_e7d8 0007D8 GR 0 m_e7dc 0007DC GR 0 m_e7df 0007DF GR 0 m_e7e7 0007E7 GR 0 m_e7ef 0007EF GR 0 m_e808 000808 GR 0 m_e80d 00080D GR 0 m_e817 000817 GR 0 m_e81e 00081E GR 0 m_e823 000823 GR 0 m_e828 000828 GR 0 m_e835 000835 GR 0 m_e83c 00083C GR 0 m_e83f 00083F GR 0 m_e84c 00084C GR 0 m_e8bf 0008BF GR 0 m_e8d6 0008D6 GR 0 m_e8e8 0008E8 GR 0 m_e8ec 0008EC GR 0 m_e8fa 0008FA GR 0 m_e922 000922 GR 0 m_e925 000925 GR 0 m_e92e 00092E GR 0 m_e947 000947 GR 0 m_e94a 00094A GR 0 m_e95d 00095D GR 0 m_e963 000963 GR 0 m_e97d 00097D GR 0 m_e999 000999 GR 0 m_e9ed 0009ED GR 0 m_ea1c 000A1C GR 0 m_ea2e 000A2E GR 0 m_ea6c 000A6C GR 0 m_ea6f 000A6F GR 0 m_ead6 000AD6 GR 0 m_eadd 000ADD GR 0 m_eb0d 000B0D GR 0 m_ebe3 000BE3 GR 0 m_ebfb 000BFB GR 0 m_ec03 000C03 GR 0 m_ec10 000C10 GR 0 m_ec14 000C14 GR 0 m_ec93 000C93 GR 0 m_ecc3 000CC3 GR 0 m_eccb 000CCB GR 0 m_ecd6 000CD6 GR 0 m_ecf1 000CF1 GR 0 m_ed07 000D07 GR 0 m_ed28 000D28 GR 0 m_ed2e 000D2E GR 0 m_ed31 000D31 GR 0 m_ed49 000D49 GR 0 m_ed52 000D52 GR 0 m_ed5e 000D5E GR 0 m_ed61 000D61 GR 0 m_ed73 000D73 GR 0 m_ed9b 000D9B GR 0 m_ed9e 000D9E GR 0 m_eda3 000DA3 GR 0 m_edc9 000DC9 GR 0 m_edeb 000DEB GR 0 m_edf6 000DF6 GR 0 m_ee04 000E04 GR 0 m_ee32 000E32 GR 0 m_ee3c 000E3C GR 0 m_ee45 000E45 GR 0 m_ee48 000E48 GR 0 m_ee4c 000E4C GR 0 m_ee5b 000E5B GR 0 m_ee78 000E78 GR 0 m_ee96 000E96 GR 0 m_eec9 000EC9 GR 0 m_ef4b 000F4B GR 0 m_ef4d 000F4D GR 0 m_ef51 000F51 GR 0 m_ef5b 000F5B GR 0 m_ef68 000F68 GR 0 m_efa6 000FA6 GR 0 m_f09f 00109F GR 0 m_f0b2 0010B2 GR 0 m_f0e5 0010E5 GR 0 m_f0fa 0010FA GR 0 m_f10c 00110C GR 0 m_f115 001115 GR 0 m_f130 001130 GR 0 m_f142 001142 GR 0 m_f145 001145 GR 0 m_f148 001148 GR 0 m_f14b 00114B GR 0 m_f14e 00114E GR 0 m_f151 001151 GR 0 map_C_to_PTR 000C1F GR 0 map_ch_0c 000B54 GR 0 map_ch_10 000B57 GR 0 map_ch_11 000B5A GR 0 map_ch_12 000B5D GR 0 map_ch_13 000B60 GR 0 map_ch_16 000B63 GR 0 map_ch_17 000B66 GR 0 map_ch_18 000B69 GR 0 map_ch_19 000B6C GR 0 map_ch_1a 000B6F GR 0 map_ch_1c 000B72 GR 0 map_ch_1d 000B75 GR 0 map_ch_31 000B78 GR 0 map_ch_41 000B7B GR 0 map_ch_42 000B7E GR 0 map_ch_43 000B81 GR 0 map_ch_44 000B84 GR 0 map_ch_45 000B87 GR 0 map_ch_46 000B8A GR 0 map_ch_47 000B8D GR 0 map_ch_48 000B90 GR 0 map_ch_49 000B93 GR 0 map_ch_4a 000B96 GR 0 map_ch_4b 000B99 GR 0 map_ch_53 000B9C GR 0 map_ch_54 000B9F GR 0 map_ch_55 000BA2 GR 0 map_ch_56 000BA5 GR 0 map_ch_59 000BA8 GR 0 map_ch_end 000BAB GR 0 map_ch_more1 000BAF GR 0 map_ch_more10 000BCA GR 0 map_ch_more11 000BCD GR 0 map_ch_more12 000BD0 GR 0 map_ch_more13 000BD3 GR 0 map_ch_more14 000BD6 GR 0 map_ch_more15 000BD9 GR 0 map_ch_more16 000BDC GR 0 map_ch_more17 000BDF GR 0 map_ch_more2 000BB2 GR 0 map_ch_more3 000BB5 GR 0 map_ch_more4 000BB8 GR 0 map_ch_more5 000BBB GR 0 map_ch_more6 000BBE GR 0 map_ch_more7 000BC1 GR 0 map_ch_more8 000BC4 GR 0 map_ch_more9 000BC7 GR 0 map_esc_list 000B51 GR 0 map_more_codes 000BAC GR 0 map_more_codes_end 000BE2 GR 0 max_address 0004A4 GR 0 modify_if_graphic_B 00071A GR 0 monitor_cmd_loop 00008C GR 0 monitor_cmd_mem_move 0000F2 GR 0 non_char_printable 0002C1 GR 0 op_return 0001E6 GR 0 opcode_compare 00074F GR 0 os_patch 0004D0 GR 0 out10_hl 000A91 GR 0 param_1 00049E GR 0 param_2 0004A0 GR 0 param_3 0004A2 GR 0 param_word 00049C GR 0 patch_os_functions 000F74 GR 0 patch_printer_ptr 001020 GR 0 patch_rom_code 000F81 GR 0 patch_table_1 000F20 GR 0 patch_table_2 000F2A GR 0 print_new_line 0003C3 GR 0 print_space 0003CD GR 0 printed_char 000466 GR 0 printer_protocol_flag 0004B6 GR 0 put_char 0003D5 GR 0 put_char_with_pop 0003D0 GR 0 putch_internal 0007AC GR 0 puts 000F6A GR 0 read_character 000D88 GR 0 res_buzzer 000A8F GR 0 res_gled 0008BB GR 0 res_sled 0008D2 GR 0 restore_os_functions 000F8C GR 0 return_to_basic 000270 GR 0 rows_buffer 000494 GR 0 rst38_vec 0001E7 GR rst_38 = 000038 G 0 save_stack 0004C6 GR 0 scan_is_stable 000609 GR 0 set_cfg10 000B39 GR 0 set_cfg20 0008B7 GR 0 set_cursor_abs 0009B7 GR 0 set_cursor_home 0009FF GR 0 set_cursor_off 000C91 GR 0 set_cursor_on 000C8D GR 0 set_fgbg_color 000C4E GR 0 set_german_ascii_range 00113A GR 0 set_gled 0008AB GR 0 set_kbd_debounce_cnt 00065F GR 0 set_kbd_modifiers 0006E7 GR 0 set_kbd_shift_lock 0006E2 GR 0 special_characters 000855 GR 0 special_characters_end 00087F GR stack_at_boot = 00F000 G 0 str_area_over 000328 GR str_area_over_size = 000010 G 0 str_break_at 000353 GR str_break_at_size = 00000D G 0 str_completed 00031A GR str_completed_size = 00000E G 0 str_memory 00030C GR str_memory_size = 00000E G 0 str_monitor 0002E9 GR str_monitor_size = 000023 G 0 str_print_off 000338 GR str_print_off_size = 00000E G 0 str_print_on 000346 GR str_print_on_size = 00000D G 0 str_reg 000360 GR str_reg_size = 00002D G 0 switch_crt40 000E88 GR 0 switch_crt80 000E90 GR 0 toggle_gled 0008A6 GR 0 tramp_set_gled 0008E5 GR 0 uart_send_tx 000AF2 GR 0 unreferenced 000758 GR 0 unreferenced_02 0002E3 GR 0 unreferenced_03 0004D4 GR 0 unreferenced_04 0004D7 GR 0 unreferenced_05 0004DA GR 0 unreferenced_06 000B1D GR 0 unreferenced_07 000B3F GR 0 unreferenced_08 000B4A GR 0 unreferenced_09 00043C GR 0 unreferenced_10 00043F GR 0 unreferenced_11 000442 GR 0 vertical_display0 000460 GR 0 vertical_display1 000461 GR 0 vertical_display2 000464 GR 0 vertical_display3 000465 GR 0 wait_fdd_ready 000F91 GR 0 wait_flicker_free 000A28 GR 0 wait_flicker_free_save_A 000A27 GR 0 wait_vsync 000A09 GR 0 write_cfg10 000B44 GR 0 write_character 000D6A GR ASxxxx Assembler V02.00 + NoICE + SDCC mods (Zilog Z80 / Hitachi HD64180 / ZX-Next / eZ80), page 2. Hexadecimal [24-Bits] Area Table 0 _CODE size 2000 flags 0