Subversion Repositories pentevo

Rev

Rev 290 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
290 ddp 1
;
2
;
261 ddp 3
;   0                                   4
4
;   5                                   1
5
; ���������������������������������������������Ŀ
6
; �                                             �
7
; � e   1 2 3 4 5 6 7 8 9 0 1 2  p s p  . . .   �07
8
; �                                             �
9
; � ` 1 2 3 4 5 6 7 8 9 0 - = <  i h u  n / * - �
10
; � t Q W E R T Y U I O P [ ] \  d e d  7 8 9   �
11
; � c A S D F G H J K L ; '   e         4 5 6 + �
12
; � s Z X C V B N M , . /     s        1 2 3   �
13
; � c w a       s       a w m c  <  >  0   . e �
14
; �                                             �
15
; ���������������������������������������������ij
16
; � Raw data:                                   �16
17
; �  00 00 00 00 00 00 00 00 00 00 00 00 00 00  �17
18
; �                                             �
19
; � �����⭮� ����⨥ <ESC> - ��室 �� ���  �19
20
; �����������������������������������������������
21
;
22
;
23
;--------------------------------------
24
;
25
.EQU    TPSK_PTR        =0
26
.EQU    TPSK_TEMP       =1
27
.EQU    TPSK_COUNT      =2
28
.EQU    TPSK_FLAGS      =3
29
.EQU    TPSK_LEDS       =4
30
;
31
;--------------------------------------
32
;
33
;TESTPS2KEYB_NOEXIT:
34
;        GETMEM  5
35
;        STH     TPSK_FLAGS,FF
36
;
37
;        LDIZ    WIND_T_PS2K*2
38
;        CALL    WINDOW
39
;        RJMP    T_PSK00
40
;
41
; - - - - - - - - - - - - - - - - - - -
42
;
43
TESTPS2KEYB:
44
        GETMEM  5
45
        STH     TPSK_FLAGS,NULL
46
 
47
        LDIZ    WIND_T_PS2K*2
48
        CALL    WINDOW
49
        LDIZ    MLMSG_TPS2K_0*2
50
        RCALL   SCR_PRINTMLSTR
51
T_PSK00:LDI     TEMP,$80
52
        STH     TPSK_LEDS,TEMP
53
 
54
        LDIZ    MSG_TPS2K_1*2
55
        RCALL   SCR_PRINTSTRZ
56
        LDI     DATA,$C4        ;"�"
57
        LDI     COUNT,45
58
        RCALL   SCR_FILL_CHAR
59
 
60
        LDIZ    MEGABUFFER+16
61
T_PSK01:ST      -Z,NULL
62
        TST     ZL
63
        BRNE    T_PSK01
64
        STS     PS2K_RAW_READY,NULL
65
        STH     TPSK_PTR,NULL
66
 
67
T_PSK10:
68
        LDS     DATA,PS2K_RAW_READY
69
        TST     DATA
70
        BREQ    T_PSK11
71
        LDS     DATA,PS2K_RAW_CODE
72
        RCALL   T_PSK80
73
T_PSK11:
74
        LDH     DATA,TPSK_LEDS
75
        SBRS    DATA,7
76
        RJMP    T_PSK1L
77
        ANDI    DATA,$07
78
        STH     TPSK_LEDS,DATA
79
        LDI     DATA,$ED
80
        RCALL   T_PSK80
81
        RCALL   PS2K_SEND_BYTE
82
        BREQ    T_PSK1_SETLED_FAIL
83
        RCALL   PS2K_RECEIVE_BYTE
84
        BREQ    T_PSK1_SETLED_FAIL
85
        RCALL   T_PSK80
86
        CPI     DATA,$FA
87
        BRNE    T_PSK1_SETLED_FAIL
88
        LDH     DATA,TPSK_LEDS
89
        RCALL   T_PSK80
90
        RCALL   PS2K_SEND_BYTE
91
        BREQ    T_PSK1_SETLED_FAIL
92
        RCALL   PS2K_RECEIVE_BYTE
93
        BREQ    T_PSK1_SETLED_FAIL
94
        RCALL   T_PSK80
95
        CPI     DATA,$FA
96
        BRNE    T_PSK1_SETLED_FAIL
97
        RCALL   T_PSK7_SHOW_LEDS
98
T_PSK1_SETLED_FAIL:
99
 
100
T_PSK1L:
101
        LDS     TEMP,PS2K_KEY_FLAGS
102
        SBRS    TEMP,PS2K_BIT_READY
103
        RJMP    T_PSK10
104
;
105
        STS     PS2K_KEY_FLAGS,NULL
106
        LDS     DATA,PS2K_KEY_CODE
107
        STH     TPSK_TEMP,TEMP
108
 
109
        LDH     COUNT,TPSK_FLAGS
110
;        TST     COUNT
111
;        BRMI    T_PSK21
112
        SBRS    TEMP,PS2K_BIT_RELEASE
113
        RJMP    T_PSK21
114
        SBRC    TEMP,PS2K_BIT_EXTKEY
115
        RJMP    T_PSK22
116
        CPI     DATA,KEY_ESC
117
        BRNE    T_PSK22
118
        INC     COUNT
119
        STH     TPSK_FLAGS,COUNT
120
        CPI     COUNT,3
121
        BRCS    T_PSK21
122
 
123
        RCALL   SCR_KBDSETLED
124
        FREEMEM 5
125
        RET
126
;
127
T_PSK22:STH     TPSK_FLAGS,NULL
128
T_PSK21:SBRC    TEMP,PS2K_BIT_EXTKEY
129
        RJMP    T_PSK12
130
        SBRC    TEMP,PS2K_BIT_RELEASE
131
        RJMP    T_PSK26
132
 
133
        LDH     XL,TPSK_LEDS
134
        LDI     XH,$01
135
        CPI     DATA,KEY_SCROLLLOCK
136
        BRNE    T_PSK23
137
        EOR     XL,XH
138
        ORI     XL,$80
139
T_PSK23:LSL     XH
140
        CPI     DATA,KEY_NUMLOCK
141
        BRNE    T_PSK24
142
        EOR     XL,XH
143
        ORI     XL,$80
144
T_PSK24:LSL     XH
145
        CPI     DATA,KEY_CAPSLOCK
146
        BRNE    T_PSK25
147
        EOR     XL,XH
148
        ORI     XL,$80
149
T_PSK25:STH     TPSK_LEDS,XL
150
T_PSK26:
151
 
152
        CPI     DATA,$83        ;F7
153
        BRNE    T_PSK12
154
        LDI     XL,(9<<3)|0
155
        RJMP    T_PSK14
156
T_PSK12:CPI     DATA,$84        ;SysReg
157
        BRNE    T_PSK13
158
        LDI     XL,(15<<3)|0
159
        RJMP    T_PSK14
160
T_PSK13:
161
        CPI     DATA,$80
162
        BRCC    T_PSK10_A
163
        LSL     DATA
164
        SBRC    TEMP,PS2K_BIT_EXTKEY
165
        ORI     DATA,$01
166
        LDIZ    TPSK_TAB*2
167
        ADD     ZL,DATA
168
        ADC     ZH,NULL
169
        LPM     XL,Z
170
        TST     XL
171
        BREQ    T_PSK10_A
172
T_PSK14:MOV     XH,XL
173
        ANDI    XH,0B00000111
174
        TST     XH
175
        BREQ    T_PSK15
176
        INC     XH
177
T_PSK15:LSR     XL
178
        LSR     XL
179
        ANDI    XL,0B00111110
180
        CPI     XL,36
181
        BRCS    T_PSK16
182
        INC     XL
183
T_PSK16:CPI     XL,30
184
        BRCS    T_PSK17
185
        INC     XL
186
T_PSK17:ADDI    XL,3
187
        ADDI    XH,7
188
        RCALL   SCR_SET_CURSOR
189
        LDH     DATA,TPSK_TEMP
190
        LDI     TEMP,$AE
191
        SBRC    DATA,PS2K_BIT_RELEASE
192
        LDI     TEMP,$D1
193
        LDI     COUNT,1
194
        RCALL   SCR_FILL_ATTR
195
T_PSK10_A:
196
        RJMP    T_PSK10
197
;
198
;
199
T_PSK80:PUSH    DATA
200
        STS     PS2K_RAW_READY,NULL
201
 
202
        LDH     ZL,TPSK_PTR
203
        LDI     ZH,HIGH(MEGABUFFER)
204
        ST      Z+,DATA
205
        ANDI    ZL,$0F
206
        STH     TPSK_PTR,ZL
207
 
208
        ANDI    FLAGS1,0B11111100       ;!!!
209
        LDI     XL,5
210
        LDI     XH,17
211
        RCALL   SCR_SET_CURSOR
212
        LDH     ZL,TPSK_PTR
213
        INC     ZL
214
        LDI     COUNT,13
215
 
216
T_PSK81:STH     TPSK_COUNT,COUNT
217
        LDI     ZH,HIGH(MEGABUFFER)
218
        INC     ZL
219
        ANDI    ZL,$0F
220
        STH     TPSK_TEMP,ZL
221
        LD      DATA,Z
222
        PUSH    DATA
223
        LDI     TEMP,$0E
224
        CPI     DATA,$E0
225
        BREQ    T_PSK82
226
        CPI     DATA,$E1
227
        BREQ    T_PSK82
228
        LDI     TEMP,$0D
229
        CPI     DATA,$F0
230
        BREQ    T_PSK82
231
        LDI     TEMP,$0B
232
        CPI     DATA,$ED
233
        BREQ    T_PSK82
234
        LDI     TEMP,$0A
235
        CPI     DATA,$85
236
        BRCC    T_PSK82
237
        LDI     TEMP,$0F
238
T_PSK82:RCALL   SCR_SET_ATTR
239
        LDI     DATA,$20
240
        RCALL   SCR_PUTCHAR
241
        POP     DATA
242
        LDH     COUNT,TPSK_COUNT
243
        TST     COUNT
244
        BREQ    T_PSK83
245
        RCALL   HEXBYTE
246
        LDH     ZL,TPSK_TEMP
247
        LDH     COUNT,TPSK_COUNT
248
        DEC     COUNT
249
        RJMP    T_PSK81
250
T_PSK83:
251
        ORI     FLAGS1,0B00000010       ;!!!
252
        CALL    HEXBYTE
253
        LDI     DATA,$20
254
        CALL    PUTCHAR
255
 
256
        POP     DATA
257
        RET
258
;
259
;
260
T_PSK7_SHOW_LEDS:
261
        LDI     XL,41
262
        LDI     XH,7
263
        RCALL   SCR_SET_CURSOR
264
        LDH     DATA,TPSK_LEDS
265
        LDI     TEMP,$DC
266
        SBRS    DATA,1
267
        LDI     TEMP,$D0
268
        LDI     COUNT,2
269
        RCALL   SCR_FILL_ATTR
270
        LDH     DATA,TPSK_LEDS
271
        LDI     TEMP,$DC
272
        SBRS    DATA,2
273
        LDI     TEMP,$D0
274
        LDI     COUNT,2
275
        RCALL   SCR_FILL_ATTR
276
        LDH     DATA,TPSK_LEDS
277
        LDI     TEMP,$DC
278
        SBRS    DATA,0
279
        LDI     TEMP,$D0
280
        LDI     COUNT,2
281
        RJMP    SCR_FILL_ATTR
282
;
283
;--------------------------------------
284
;
285
WIND_T_PS2K:
286
        .DB     3,5,47,16,$DF,$01
287
;
288
;--------------------------------------
289
;
290
TPSK_TAB:
291
        .DB     0        , 0            ;00
292
        .DB     (11<<3)|0, 0            ;01
293
        .DB     0        , 0            ;02
294
        .DB     ( 7<<3)|0, 0            ;03
295
        .DB     ( 5<<3)|0, 0            ;04
296
        .DB     ( 3<<3)|0, 0            ;05
297
        .DB     ( 4<<3)|0, 0            ;06
298
        .DB     (14<<3)|0, 0            ;07
299
        .DB     0        , 0            ;08
300
        .DB     (12<<3)|0, 0            ;09
301
        .DB     (10<<3)|0, 0            ;0A
302
        .DB     ( 8<<3)|0, 0            ;0B
303
        .DB     ( 6<<3)|0, 0            ;0C
304
        .DB     ( 1<<3)|2, 0            ;0D
305
        .DB     ( 1<<3)|1, 0            ;0E
306
        .DB     0        , 0            ;0F
307
        .DB     0        , 0            ;10
308
        .DB     ( 3<<3)|5, (11<<3)|5    ;11
309
        .DB     ( 1<<3)|4, 0            ;12
310
        .DB     0        , 0            ;13
311
        .DB     ( 1<<3)|5, (14<<3)|5    ;14
312
        .DB     ( 2<<3)|2, 0            ;15
313
        .DB     ( 2<<3)|1, 0            ;16
314
        .DB     0        , 0            ;17
315
        .DB     0        , 0            ;18
316
        .DB     0        , 0            ;19
317
        .DB     ( 2<<3)|4, 0            ;1A
318
        .DB     ( 3<<3)|3, 0            ;1B
319
        .DB     ( 2<<3)|3, 0            ;1C
320
        .DB     ( 3<<3)|2, 0            ;1D
321
        .DB     ( 3<<3)|1, 0            ;1E
322
        .DB     0        , ( 2<<3)|5    ;1F
323
        .DB     0        , 0            ;20
324
        .DB     ( 4<<3)|4, 0            ;21
325
        .DB     ( 3<<3)|4, 0            ;22
326
        .DB     ( 4<<3)|3, 0            ;23
327
        .DB     ( 4<<3)|2, 0            ;24
328
        .DB     ( 5<<3)|1, 0            ;25
329
        .DB     ( 4<<3)|1, 0            ;26
330
        .DB     0        , (12<<3)|5    ;27
331
        .DB     0        , 0            ;28
332
        .DB     ( 7<<3)|5, 0            ;29
333
        .DB     ( 5<<3)|4, 0            ;2A
334
        .DB     ( 5<<3)|3, 0            ;2B
335
        .DB     ( 6<<3)|2, 0            ;2C
336
        .DB     ( 5<<3)|2, 0            ;2D
337
        .DB     ( 6<<3)|1, 0            ;2E
338
        .DB     0        , (13<<3)|5    ;2F
339
        .DB     0        , 0            ;30
340
        .DB     ( 7<<3)|4, 0            ;31
341
        .DB     ( 6<<3)|4, 0            ;32
342
        .DB     ( 7<<3)|3, 0            ;33
343
        .DB     ( 6<<3)|3, 0            ;34
344
        .DB     ( 7<<3)|2, 0            ;35
345
        .DB     ( 7<<3)|1, 0            ;36
346
        .DB     0        , 0            ;37
347
        .DB     0        , 0            ;38
348
        .DB     0        , 0            ;39
349
        .DB     ( 8<<3)|4, 0            ;3A
350
        .DB     ( 8<<3)|3, 0            ;3B
351
        .DB     ( 8<<3)|2, 0            ;3C
352
        .DB     ( 8<<3)|1, 0            ;3D
353
        .DB     ( 9<<3)|1, 0            ;3E
354
        .DB     0        , 0            ;3F
355
        .DB     0        , 0            ;40
356
        .DB     ( 9<<3)|4, 0            ;41
357
        .DB     ( 9<<3)|3, 0            ;42
358
        .DB     ( 9<<3)|2, 0            ;43
359
        .DB     (10<<3)|2, 0            ;44
360
        .DB     (11<<3)|1, 0            ;45
361
        .DB     (10<<3)|1, 0            ;46
362
        .DB     0        , 0            ;47
363
        .DB     0        , 0            ;48
364
        .DB     (10<<3)|4, 0            ;49
365
        .DB     (11<<3)|4, (19<<3)|1    ;4A
366
        .DB     (10<<3)|3, 0            ;4B
367
        .DB     (11<<3)|3, 0            ;4C
368
        .DB     (11<<3)|2, 0            ;4D
369
        .DB     (12<<3)|1, 0            ;4E
370
        .DB     0        , 0            ;4F
371
        .DB     0        , 0            ;50
372
        .DB     0        , 0            ;51
373
        .DB     (12<<3)|3, 0            ;52
374
        .DB     0        , 0            ;53
375
        .DB     (12<<3)|2, 0            ;54
376
        .DB     (13<<3)|1, 0            ;55
377
        .DB     0        , 0            ;56
378
        .DB     0        , 0            ;57
379
        .DB     ( 1<<3)|3, 0            ;58
380
        .DB     (14<<3)|4, 0            ;59
381
        .DB     (14<<3)|3, (21<<3)|5    ;5A
382
        .DB     (13<<3)|2, 0            ;5B
383
        .DB     0        , 0            ;5C
384
        .DB     (14<<3)|2, 0            ;5D
385
        .DB     0        , 0            ;5E
386
        .DB     0        , 0            ;5F
387
        .DB     0        , 0            ;60
388
        .DB     0        , 0            ;61
389
        .DB     0        , 0            ;62
390
        .DB     0        , 0            ;63
391
        .DB     0        , 0            ;64
392
        .DB     0        , 0            ;65
393
        .DB     (14<<3)|1, 0            ;66
394
        .DB     0        , 0            ;67
395
        .DB     0        , 0            ;68
396
        .DB     (18<<3)|4, (16<<3)|2    ;69
397
        .DB     0        , 0            ;6A
398
        .DB     (18<<3)|3, (15<<3)|5    ;6B
399
        .DB     (18<<3)|2, (16<<3)|1    ;6C
400
        .DB     0        , 0            ;6D
401
        .DB     0        , 0            ;6E
402
        .DB     0        , 0            ;6F
403
        .DB     (18<<3)|5, (15<<3)|1    ;70
404
        .DB     (20<<3)|5, (15<<3)|2    ;71
405
        .DB     (19<<3)|4, (16<<3)|5    ;72
406
        .DB     (19<<3)|3, 0            ;73
407
        .DB     (20<<3)|3, (17<<3)|5    ;74
408
        .DB     (19<<3)|2, (16<<3)|4    ;75
409
        .DB     ( 1<<3)|0, 0            ;76
410
        .DB     (18<<3)|1, 0            ;77
411
        .DB     (13<<3)|0, 0            ;78
412
        .DB     (21<<3)|3, 0            ;79
413
        .DB     (20<<3)|4, (17<<3)|2    ;7A
414
        .DB     (21<<3)|1, 0            ;7B
415
        .DB     (20<<3)|1, (15<<3)|0    ;7C
416
        .DB     (20<<3)|2, (17<<3)|1    ;7D
417
        .DB     (16<<3)|0, (17<<3)|0    ;7E
418
        .DB     0        , 0            ;7F
419
;
420
;--------------------------------------
421
;