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 |