?? keyboard.lis
字號:
.module keyboard.c
.area lit(rom, con, rel)
0000 _unshifted::
0000 0D09 .byte 13,9
0002 0E7C .byte 14,124
0004 1571 .byte 21,'q
0006 1631 .byte 22,49
0008 1A7A .byte 26,'z
000A 1B73 .byte 27,'s
000C 1C61 .byte 28,'a
000E 1D77 .byte 29,'w
0010 1E32 .byte 30,50
0012 2163 .byte 33,'c
0014 2278 .byte 34,'x
0016 2364 .byte 35,'d
0018 2465 .byte 36,'e
001A 2534 .byte 37,52
001C 2633 .byte 38,51
001E 2920 .byte 41,32
0020 2A76 .byte 42,'v
0022 2B66 .byte 43,'f
0024 2C74 .byte 44,'t
0026 2D72 .byte 45,'r
0028 2E35 .byte 46,53
002A 316E .byte 49,'n
002C 3262 .byte 50,'b
002E 3368 .byte 51,'h
0030 3467 .byte 52,'g
0032 3579 .byte 53,'y
0034 3636 .byte 54,54
0036 392C .byte 57,44
0038 3A6D .byte 58,'m
003A 3B6A .byte 59,'j
003C 3C75 .byte 60,'u
003E 3D37 .byte 61,55
0040 3E38 .byte 62,56
0042 412C .byte 'A,44
0044 426B .byte 'B,'k
0046 4369 .byte 'C,'i
0048 446F .byte 'D,'o
004A 4530 .byte 'E,48
004C 4639 .byte 'F,57
004E 492E .byte 'I,46
0050 4A2D .byte 'J,45
0052 4B6C .byte 'K,'l
0054 4C3F .byte 'L,63
0056 4D70 .byte 'M,'p
0058 4E2B .byte 'N,43
005A 523F .byte 'R,63
005C 543F .byte 'T,63
005E 555C .byte 'U,92
0060 5A0D .byte 'Z,13
0062 5B3F .byte 91,63
0064 5D5C .byte 93,92
0066 613C .byte 'a,60
0068 6608 .byte 'f,8
006A 6931 .byte 'i,49
006C 6B34 .byte 'k,52
006E 6C37 .byte 'l,55
0070 7030 .byte 'p,48
0072 712C .byte 'q,44
0074 7232 .byte 'r,50
0076 7335 .byte 's,53
0078 7436 .byte 't,54
007A 7538 .byte 'u,56
007C 792B .byte 'y,43
007E 7A33 .byte 'z,51
0080 7B2D .byte 123,45
0082 7C2A .byte 124,42
0084 7D39 .byte 125,57
0086 0000 .byte 0,0
0088 .dbfile C:\DOCUME~1\Administrator\桌面\ps2/scancode.h
0088 .dbsym e unshifted _unshifted A[136:68:2]kc
0088 _shifted::
0088 0D09 .byte 13,9
008A 0E3F .byte 14,63
008C 1551 .byte 21,'Q
008E 1621 .byte 22,33
0090 1A5A .byte 26,'Z
0092 1B53 .byte 27,'S
0094 1C41 .byte 28,'A
0096 1D57 .byte 29,'W
0098 1E22 .byte 30,34
009A 2143 .byte 33,'C
009C 2258 .byte 34,'X
009E 2344 .byte 35,'D
00A0 2445 .byte 36,'E
00A2 253F .byte 37,63
00A4 2623 .byte 38,35
00A6 2920 .byte 41,32
00A8 2A56 .byte 42,'V
00AA 2B46 .byte 43,'F
00AC 2C54 .byte 44,'T
00AE 2D52 .byte 45,'R
00B0 2E25 .byte 46,37
00B2 314E .byte 49,'N
00B4 3242 .byte 50,'B
00B6 3348 .byte 51,'H
00B8 3447 .byte 52,'G
00BA 3559 .byte 53,'Y
00BC 3626 .byte 54,38
00BE 394C .byte 57,'L
00C0 3A4D .byte 58,'M
00C2 3B4A .byte 59,'J
00C4 3C55 .byte 60,'U
00C6 3D2F .byte 61,47
00C8 3E28 .byte 62,40
00CA 413B .byte 'A,59
00CC 424B .byte 'B,'K
00CE 4349 .byte 'C,'I
00D0 444F .byte 'D,'O
00D2 453D .byte 'E,61
00D4 4629 .byte 'F,41
00D6 493A .byte 'I,58
00D8 4A5F .byte 'J,95
00DA 4B4C .byte 'K,'L
00DC 4C3F .byte 'L,63
00DE 4D50 .byte 'M,'P
00E0 4E3F .byte 'N,63
00E2 523F .byte 'R,63
00E4 543F .byte 'T,63
00E6 5560 .byte 'U,96
00E8 5A0D .byte 'Z,13
00EA 5B5E .byte 91,94
00EC 5D2A .byte 93,42
00EE 613E .byte 'a,62
00F0 6608 .byte 'f,8
00F2 6931 .byte 'i,49
00F4 6B34 .byte 'k,52
00F6 6C37 .byte 'l,55
00F8 7030 .byte 'p,48
00FA 712C .byte 'q,44
00FC 7232 .byte 'r,50
00FE 7335 .byte 's,53
0100 7436 .byte 't,54
0102 7538 .byte 'u,56
0104 792B .byte 'y,43
0106 7A33 .byte 'z,51
0108 7B2D .byte 123,45
010A 7C2A .byte 124,42
010C 7D39 .byte 125,57
010E 0000 .byte 0,0
0110 .dbsym e shifted _shifted A[136:68:2]kc
.area text(rom, con, rel)
0000 .dbfile C:\DOCUME~1\Administrator\桌面\ps2/scancode.h
0000 .dbfile C:\DOCUME~1\Administrator\桌面\ps2\keyboard.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 29
0000 ; /*****************************
0000 ; ** low level kexboard routines VERSION 1.0
0000 ; ******************************/
0000 ; //ICC-AVR application builder : 2009-3-13 23:41:54
0000 ; // Target : M16
0000 ; // Crystal: 11.059Mhz
0000 ;
0000 ; #include <iom16v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; // "kb.h"
0000 ; #include "scancode.h"
0000 ;
0000 ; #define BUFF_SIZE 64
0000 ; #define CLOCK 2
0000 ; #define DATAPIN 3
0000 ;
0000 ; #define ISC00 0
0000 ; #define ISC01 1
0000 ;
0000 ; // Declare your global variables here
0000 ; unsigned char edge, bitcount; // 0 = neg. 1 = pos.
0000 ;
0000 ; unsigned char kb_buffer[BUFF_SIZE];
0000 ; unsigned char *inpt, *outpt;
0000 ; unsigned char buffcnt;
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 30
0000 ; PORTA = 0x00;
0000 2224 clr R2
0002 2BBA out 0x1b,R2
0004 .dbline 31
0004 ; DDRA = 0x00;
0004 2ABA out 0x1a,R2
0006 .dbline 32
0006 ; PORTB = 0x00;
0006 28BA out 0x18,R2
0008 .dbline 33
0008 ; DDRB = 0x00;
0008 27BA out 0x17,R2
000A .dbline 34
000A ; PORTC = 0x00; //m103 output only
000A 25BA out 0x15,R2
000C .dbline 35
000C ; DDRC = 0x00;
000C 24BA out 0x14,R2
000E .dbline 36
000E ; PORTD = 0x00;
000E 22BA out 0x12,R2
0010 .dbline 37
0010 ; DDRD = 0x00;
0010 21BA out 0x11,R2
0012 .dbline -2
0012 L1:
0012 .dbline 0 ; func end
0012 0895 ret
0014 .dbend
0014 .dbfunc e InitKeyBoard _InitKeyBoard fV
.even
0014 _InitKeyBoard::
0014 .dbline -1
0014 .dbline 42
0014 ; }
0014 ;
0014 ;
0014 ; void InitKeyBoard(void)
0014 ; {
0014 .dbline 43
0014 ; inpt = kb_buffer; // Initialize buffer
0014 80E0 ldi R24,<_kb_buffer
0016 90E0 ldi R25,>_kb_buffer
0018 90930500 sts _inpt+1,R25
001C 80930400 sts _inpt,R24
0020 .dbline 44
0020 ; outpt = kb_buffer;
0020 90930300 sts _outpt+1,R25
0024 80930200 sts _outpt,R24
0028 .dbline 45
0028 ; buffcnt = 0;
0028 2224 clr R2
002A 20920100 sts _buffcnt,R2
002E .dbline 48
002E ;
002E ; //MCUCR = 2; // INT0 interrupt on falling edge
002E ; edge = 0; // 0 = falling edge 1 = rising edge
002E 20924700 sts _edge,R2
0032 .dbline 49
0032 ; bitcount = 11;
0032 8BE0 ldi R24,11
0034 80934600 sts _bitcount,R24
0038 .dbline -2
0038 L2:
0038 .dbline 0 ; func end
0038 0895 ret
003A .dbend
003A .dbfunc e put_kbbuff _put_kbbuff fV
003A ; c -> R16
.even
003A _put_kbbuff::
003A .dbline -1
003A .dbline 55
003A ; //#asm("sei") // interrupt enable
003A ; }
003A ;
003A ;
003A ; void put_kbbuff(unsigned char c)
003A ; {
003A .dbline 56
003A ; if (buffcnt<BUFF_SIZE) // If buffer not full
003A 80910100 lds R24,_buffcnt
003E 8034 cpi R24,64
0040 10F5 brsh L4
0042 .dbline 57
0042 ; {
0042 .dbline 58
0042 ; *inpt = c; // Put character into buffer
0042 E0910400 lds R30,_inpt
0046 F0910500 lds R31,_inpt+1
004A 0083 std z+0,R16
004C .dbline 59
004C ; inpt++; // Increment pointer
004C 80910400 lds R24,_inpt
0050 90910500 lds R25,_inpt+1
0054 0196 adiw R24,1
0056 90930500 sts _inpt+1,R25
005A 80930400 sts _inpt,R24
005E .dbline 61
005E ;
005E ; buffcnt++;
005E 80910100 lds R24,_buffcnt
0062 8F5F subi R24,255 ; addi 1
0064 80930100 sts _buffcnt,R24
0068 .dbline 63
0068 ;
0068 ; if (inpt >= kb_buffer + BUFF_SIZE) // Pointer wrapping
0068 80E0 ldi R24,<_kb_buffer+64
006A 90E0 ldi R25,>_kb_buffer+64
006C 20900400 lds R2,_inpt
0070 30900500 lds R3,_inpt+1
0074 2816 cp R2,R24
0076 3906 cpc R3,R25
0078 30F0 brlo L6
007A .dbline 64
007A ; inpt = kb_buffer;
007A 80E0 ldi R24,<_kb_buffer
007C 90E0 ldi R25,>_kb_buffer
007E 90930500 sts _inpt+1,R25
0082 80930400 sts _inpt,R24
0086 L6:
0086 .dbline 65
0086 L4:
0086 .dbline -2
0086 L3:
0086 .dbline 0 ; func end
0086 0895 ret
0088 .dbsym r c 16 c
0088 .dbend
0088 .dbfunc e getchar_kb _getchar_kb fI
0088 ; byte -> R16,R17
.even
0088 _getchar_kb::
0088 .dbline -1
0088 .dbline 69
0088 ; }
0088 ; }
0088 ;
0088 ; int getchar_kb(void)
0088 ; {
0088 L10:
0088 .dbline 71
0088 L11:
0088 .dbline 71
0088 ; int byte;
0088 ; while(buffcnt == 0); // Wait for data
0088 20900100 lds R2,_buffcnt
008C 2220 tst R2
008E E1F3 breq L10
0090 .dbline 73
0090 ;
0090 ; byte = *outpt; // Get byte
0090 E0910200 lds R30,_outpt
0094 F0910300 lds R31,_outpt+1
0098 0081 ldd R16,z+0
009A 1127 clr R17
009C .dbline 74
009C ; outpt++; // Increment pointer
009C CF01 movw R24,R30
009E 0196 adiw R24,1
00A0 90930300 sts _outpt+1,R25
00A4 80930200 sts _outpt,R24
00A8 .dbline 76
00A8 ;
00A8 ; if (outpt >= kb_buffer + BUFF_SIZE) // Pointer wrapping
00A8 80E0 ldi R24,<_kb_buffer+64
00AA 90E0 ldi R25,>_kb_buffer+64
00AC 20900200 lds R2,_outpt
00B0 30900300 lds R3,_outpt+1
00B4 2816 cp R2,R24
00B6 3906 cpc R3,R25
00B8 30F0 brlo L13
00BA .dbline 77
00BA ; outpt = kb_buffer;
00BA 80E0 ldi R24,<_kb_buffer
00BC 90E0 ldi R25,>_kb_buffer
00BE 90930300 sts _outpt+1,R25
00C2 80930200 sts _outpt,R24
00C6 L13:
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -