[[키,key]] =키,key =,key 키 key { [[키key]] - DB내용은 일단 저기로 ''키보드의 키 내용(아래), 자료구조(dictionary/associative_array/...)/cryptography(hash_function/....)/... 의 key는 나중에 어디에 어떻게 배치할지 tbw'' ---- keypad - [[키패드,keypad]] keyboard - [[키보드,keyboard]] dead_key https://ko.wikipedia.org/wiki/데드_키 WpEn:Dead_key ppppppp "a special kind of modifier_key on a mechanical typewriter, or computer keyboard, that is typically used to attach a specific [[diacritic]] to a base letter." modifier_key WtEn:modifier_key https://ko.wikipedia.org/wiki/수식키 compose_key or multi_key (wp) https://ko.wikipedia.org/wiki/컴포즈_키 https://en.wikipedia.org/wiki/Compose_key WtEn:compose_key ? mmmmmmmm AltGr_key https://ko.wikipedia.org/wiki/AltGr_키 Up: modifier_key WtEn:AltGr_key ? iiiii keyboard_layout https://en.wikipedia.org/wiki/Keyboard_layout rel input_method - 입력 방법|방식 Srch:input_method Up: [[입력,input]] [[method]] keyboard_input // Srch:keyboard_input Up: [[키보드,keyboard]] [[입력,input]] [[WpKo:입력기]] = https://ko.wikipedia.org/wiki/입력기 delete_key https://en.wikipedia.org/wiki/Delete_key backspace / backspace_key return_key / enter_key [[Windows_key]] =,Windows_key . Windows_key { https://everything2.com/title/windows+key windows+key Ggl:windows+key } 키보드의 키 여기추가 QQQQQ 키보드의 키 여기추가 QQQQQ 키보드의 키 여기추가 QQQQQ 키보드의 키 여기추가 QQQQQ 키보드의 키 여기추가 QQQQQ } ---- //old, merge, moved from [[FrontPage]] { // mklink [[keyboard_interrupt]] =,keyboard_interrupt . keyboard_interrupt { keyboard interrupt 키보드 인터럽트 WtEn:keyboard_interrupt x([[Date(2023-08-16T19:19:43)]]) WpEn:Keyboard_interrupt .... Bing:"키보드 인터럽트" Ndict:"키보드 인터럽트" Ggl:"키보드 인터럽트" Bing:"keyboard interrupt" Ggl:"keyboard interrupt" Up: [[키보드,keyboard]] [[인터럽트,interrupt]] > [[하드웨어인터럽트,hardware_interrupt]] } 16-bit IBM PC의 경우. IRQ 1 사용. 키보드 [[버퍼,buffer]]는 0040:001E ~ 0040:003C (32 bytes) 0040:001A와 0040:001C의 두 개 [[포인터,pointer]]로 환형 queue를 이룸. 0040:001A는, 프로그램이 키보드 입력을 요청할 때(getch등) 내어줄 문자를 가리킴. 0040:001C는, 다음에 키보드 입력이 있을 때 눌려진 키를 저장할 위치를 가리킴. 한 키가 2바이트씩으로 기록됨. (하나는 스캔코드, 하나는 아스키코드) // scan_code ascii_code 따라서 최대 16개의 키가 저장됨. ---- int 16h가 키보드 관련인듯. 키보드 버퍼에 키 코드 넣기 // keyboard_buffer int 16h, ah=5h 사용 ch=입력할 스캔 코드 cl=입력할 아스키 코드 결과 al=0: 성공, 아니면 실패 키보드 인터럽트 벡터가 9라고? 아님 인터럽트 번호? ---- 메모리 주소 0040:0017의 정보 ||bit ||정보 || ||0 ||right Shift pressed || ||1 ||left Shift pressed || ||2 ||either Ctrl pressed || ||3 ||either Alt pressed || ||4 ||ScrollLock active || ||5 ||NumLock active || ||6 ||CapsLock active || ||7 ||Insert active || 메모리 주소 0040:0018의 정보 ||bit ||정보 || ||0 ||left Ctrl pressed || ||1 ||left Alt pressed || ||2 ||SysRq pressed || ||3 ||Pause state active || ||4 ||ScrollLock pressed || ||5 ||NumLock pressed || ||6 ||CapsLock pressed || ||7 ||Insert pressed || 메모리 주소 0040:0096의 정보 ||bit ||정보 || ||0 ||last code read was E1h || ||1 ||last code read was E0h 이게 무슨 의미??|| ||2 ||right Ctrl pressed || ||3 ||right Alt pressed || ||4 ||enhanced keyboard installed - 뜻은? || ||5 ||force NumLock if read-ID and enhanced keyboard (?) || ||6 ||last code read was first of two ID codes (?) || ||7 ||read-ID in progress || 메모리 주소 0040:0097의 정보 ||bit ||정보 || ||0 ||ScrollLock LED || ||1 ||NumLock LED || ||2 ||CapsLock LED || ||3 ||reserved, must be zero || ||4 ||ACK received from keyboard || ||5 ||RESEND received from keyboard || ||6 ||LED update in progress || ||7 ||keyboard transmit error flag || 이런 것들을 peekb로 읽곤 한다. ---- Ctrl-Break의 인터럽트 번호는 23h이다. setvect/getvect 로 인터럽트 핸들러를 변경하거나 얻어온다. // interrupt_handler setvect(int interruptno, void interrupt (*isr)()); void interrupt(*(int interruptno))(); } ---- https://en.wikipedia.org/wiki/Computer_keyboard