키보드,keyboard

키보드,keyboard (rev. 1.10)

키,key =키,key =,key 키 key
{
키key - DB내용은 일단 저기로
키보드의 키 내용(아래), 자료구조(dictionary/associative_array/...)/cryptography(hash_function/....)/... 의 key는 나중에 어디에 어떻게 배치할지 tbw




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/수식키


AltGr_key
https://ko.wikipedia.org/wiki/AltGr_키
Up: modifier_key
WtEn:AltGr_key ? iiiii


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

}


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))();

}