Subversion Repositories pentevo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 savelij 1
 
2
;LAST UPDATE: 05.05.2011 savelij
3
 
4
KEYBOARDS       PUSH HL
5
                PUSH DE
6
                PUSH BC
7
                PUSH AF
8
                CALL KEYBOARD
9
                POP AF
10
                POP BC
11
                POP DE
12
                POP HL
13
                EI
14
EMPTY           RET
15
 
16
KEY_SCAN        LD L,0X2F
17
                LD DE,0XFFFF
18
                LD BC,0XFEFE
19
KEY_LINE        IN A,(C)
20
                CPL
21
                AND 0X1F
22
                JR Z,KEY_DONE
23
                LD H,A
24
                LD A,L
25
KEY_3KEYS       INC D
26
                RET NZ
27
KEY_BITS        SUB 8
28
                SRL H
29
                JR NC,KEY_BITS
30
                LD D,E
31
                LD E,A
32
                JR NZ,KEY_3KEYS
33
KEY_DONE        DEC L
34
                RLC B
35
                JR C,KEY_LINE
36
                LD A,D
37
                INC A
38
                RET Z
39
                CP 0X28
40
                RET Z
41
                CP 0X19
42
                RET Z
43
                LD A,E
44
                LD E,D
45
                LD D,A
46
                CP 0X18
47
                RET
48
 
49
K_TEST          LD B,D
50
                LD D,0
51
                LD A,E
52
                CP 0X27
53
                RET NC
54
                CP 0X18
55
                JR NZ,K_MAIN
56
                BIT 7,B
57
                RET NZ
58
K_MAIN          LD HL,TABL_KEYS
59
                ADD HL,DE
60
                LD A,(HL)
61
                SCF
62
                RET
63
 
64
K_DECODE        LD A,E
65
                CP 0X3A
66
                JR C,K_DIGIT
67
                DEC C
68
                JP M,K_KLC_LET
69
                ADD A,0X4F
70
                RET
71
 
72
K_LOOK_UP       LD D,0
73
                ADD HL,DE
74
                LD A,(HL)
75
                RET
76
 
77
K_KLC_LET       LD HL,TABL_KEYD
78
                BIT 0,B
79
                JR Z,K_LOOK_UP
80
                PUSH HL
81
                LD HL,FLAGS_KEY1
82
                BIT 3,(HL)
83
                POP HL
84
                RET NZ
85
                INC B
86
                RET NZ
87
                ADD A,0X20
88
                RET
89
 
90
K_DIGIT         CP 0X30
91
                RET C
92
                DEC C
93
K_KLC_DGT       INC B
94
                RET Z
95
                BIT 5,B
96
                LD HL,TABL_KEYC-0X30
97
                JR NZ,K_LOOK_UP
98
                SUB 0X10
99
                CP 0X22
100
                JR Z,K_GAW_CHAR
101
                CP 0X20
102
                RET NZ
103
                LD A,0X5F
104
                RET
105
 
106
K_GAW_CHAR      LD A,0X40
107
                RET
108
 
109
KEYBOARD        CALL KEY_SCAN
110
                RET NZ
111
                LD HL,KSTATE0
112
K_ST_LOOP       BIT 7,(HL)
113
                JR NZ,K_CH_SET
114
                INC HL
115
                DEC (HL)
116
                DEC HL
117
                JR NZ,K_CH_SET
118
                LD (HL),0XFF
119
K_CH_SET        LD A,L
120
                LD HL,KSTATE4
121
                CP L
122
                JR NZ,K_ST_LOOP
123
                CALL K_TEST
124
                RET NC
125
                LD HL,KSTATE0
126
                CP (HL)
127
                JR Z,K_REPEAT
128
                EX DE,HL
129
                LD HL,KSTATE4
130
                CP (HL)
131
                JR Z,K_REPEAT
132
                BIT 7,(HL)
133
                JR NZ,K_NEW
134
                EX DE,HL
135
                BIT 7,(HL)
136
                RET Z
137
K_NEW           LD E,A
138
                LD (HL),A
139
                INC HL
140
                LD (HL),5
141
                INC HL
142
                LD A,(REPDEL)
143
                LD (HL),A
144
                INC HL
145
                LD C,0                          ;(MODE)
146
                LD A,(FLAGS_KEY)
147
                LD D,A
148
                PUSH HL
149
                CALL K_DECODE
150
                POP HL
151
                LD (HL),A
152
K_END           LD (LAST_K),A
153
                PUSH HL
154
                LD HL,FLAGS_KEY
155
                SET 5,(HL)
156
                POP HL
157
                RET
158
 
159
K_REPEAT        INC HL
160
                LD (HL),5
161
                INC HL
162
                DEC (HL)
163
                RET NZ
164
                LD A,(REPPER)
165
                LD (HL),A
166
                INC HL
167
                LD A,(HL)
168
                JR K_END
169
 
170
BREAK_KEY       LD A,0X7F
171
                IN A,(0XFE)
172
                RRA
173
                RET C
174
                LD A,0XFE
175
                IN A,(0XFE)
176
                RRA
177
                RET