Subversion Repositories pentevo

Rev

Rev 627 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 627 Rev 1120
Line -... Line 1...
-
 
1
 
-
 
2
; LAST UPDATE: 18.10.2023 savelij
-
 
3
 
1
;.Z80
4
;.Z80
2
;#INCLUDE "ALLVARS.ASH"
5
;#INCLUDE "ALLVARS.ASH"
3
 
6
 
4
CI_INIT:    JP      _CI_INIT
7
CI_INIT:    JP      _CI_INIT
5
CI_IN:      JP      _CI_
8
CI_IN:      JP      _CI_
Line 19... Line 22...
19
             LD      (KS_UNDS),A
22
             LD      (KS_UNDS),A
20
             LD      (KS_UNDS1),A
23
             LD      (KS_UNDS1),A
21
             JP      K_INIT
24
             JP      K_INIT
22
 
25
 
23
CI_CVT:      LD      D,A
26
CI_CVT:      LD      D,A
24
             BIT     _KS_ALT,E
27
             BIT     B_KS_ALT,E
25
             SCF
28
             SCF
26
             RET     NZ
29
             RET     NZ
27
CIC_2:       LD      D,A
30
CIC_2:       LD      D,A
28
             BIT     7,A
31
             BIT     7,A
29
             JR      Z,CIC_1
32
             JR      Z,CIC_1
Line 31... Line 34...
31
             XOR     A
34
             XOR     A
32
             CALL    CI_ENC1
35
             CALL    CI_ENC1
33
CIC_21:      INC     L
36
CIC_21:      INC     L
34
             JR      Z,CIC_2
37
             JR      Z,CIC_2
35
             JR      CIC_RETA
38
             JR      CIC_RETA
-
 
39
 
36
CIC_1:       LD      HL,CIC_TBL-1
40
CIC_1:       LD      HL,CIC_TBL-1
37
             LD      B,-1
41
             LD      B,-1
38
CIC_L1:      INC     HL
42
CIC_L1:      INC     HL
39
             INC     B
43
             INC     B
40
             CP      (HL)
44
             CP      (HL)
41
             INC     HL
45
             INC     HL
42
             JR      C,CIC_L1
46
             JR      C,CIC_L1
43
             CP      (HL)
47
             CP      (HL)
44
             JR      NC,CIC_L1
48
             JR      NC,CIC_L1
45
             LD      C,0
49
             LD      C,0
46
             BIT     _KS_CTRL,E
50
             BIT     B_KS_CTRL,E
47
             LD      A,3
51
             LD      A,3
48
             JR      NZ,CIC_ST
52
             JR      NZ,CIC_ST
49
             BIT     _KS_RUS,E
53
             BIT     B_KS_RUS,E
50
             JR      Z,CIC_S1
54
             JR      Z,CIC_S1
51
             LD      C,4
55
             LD      C,4
52
CIC_S1:      BIT     _KS_SHFT,E
56
CIC_S1:      BIT     B_KS_SHFT,E
53
             LD      A,1
57
             LD      A,1
54
             JR      NZ,CIC_ST
58
             JR      NZ,CIC_ST
55
             INC     A
59
             INC     A
56
             BIT     _KS_SHFT2,E
60
             BIT     B_KS_SHFT2,E
57
             JR      NZ,CIC_ST
61
             JR      NZ,CIC_ST
58
             XOR     A
62
             XOR     A
59
CIC_ST:      OR      C
63
CIC_ST:      OR      C
60
             ADD     A,A
64
             ADD     A,A
61
             ADD     A,A
65
             ADD     A,A
Line 67... Line 71...
67
             LD      A,1FH
71
             LD      A,1FH
68
             AND     D
72
             AND     D
69
             RET
73
             RET
70
 
74
 
71
CIC_DOL_:    LD      A,D
75
CIC_DOL_:    LD      A,D
72
             BIT     _KS_CAPS,E
76
             BIT     B_KS_CAPS,E
73
             RET     Z
77
             RET     Z
74
CIC_DOS:     ADD     A,20H
78
CIC_DOS:     ADD     A,20H
75
             RET
79
             RET
76
 
80
 
77
CIC_DOS_:    LD      A,D
81
CIC_DOS_:    LD      A,D
78
             BIT     _KS_CAPS,E
82
             BIT     B_KS_CAPS,E
79
             RET     NZ
83
             RET     NZ
80
             JR      CIC_DOS
84
             JR      CIC_DOS
81
 
85
 
82
CIC_RET:     LD      A,D
86
CIC_RET:     LD      A,D
83
CIC_RETA:    OR      A
87
CIC_RETA:    OR      A
Line 111... Line 115...
111
             RES     0,H
115
             RES     0,H
112
             JR      C,CIC_NOLIT
116
             JR      C,CIC_NOLIT
113
             BIT     7,A
117
             BIT     7,A
114
             JR      NZ,CIC_LIT
118
             JR      NZ,CIC_LIT
115
             CP      "A"
119
             CP      "A"
116
             BIT     _KS_RUS,E
120
             BIT     B_KS_RUS,E
117
             JR      Z,CIC_51
121
             JR      Z,CIC_51
118
             CP      "@"
122
             CP      "@"
119
CIC_51:      JR      C,CIC_NOLIT
123
CIC_51:      JR      C,CIC_NOLIT
120
             CP      0X5A+1;'Z'+1
124
             CP      0X5A+1;'Z'+1
121
             BIT     _KS_RUS,E
125
             BIT     B_KS_RUS,E
122
             JR      Z,CIC_5
126
             JR      Z,CIC_5
123
             CP      60H
127
             CP      60H
124
CIC_5:       JR      NC,CIC_NOLIT
128
CIC_5:       JR      NC,CIC_NOLIT
125
CIC_LIT:     LD      C,A
129
CIC_LIT:     LD      C,A
126
             LD      A,E
130
             LD      A,E
Line 129... Line 133...
129
             RET     PO
133
             RET     PO
130
CIC_4:       LD      A,H
134
CIC_4:       LD      A,H
131
             JR      CIC_3
135
             JR      CIC_3
132
 
136
 
133
CIC_NOLIT:   OR      A
137
CIC_NOLIT:   OR      A
134
             BIT     _KS_SHFT,E
138
             BIT     B_KS_SHFT,E
135
             JR      NZ,CIC_RETA
139
             JR      NZ,CIC_RETA
136
             JR      CIC_4
140
             JR      CIC_4
137
 
141
 
138
CI_ENC:      INC     A
142
CI_ENC:      INC     A
139
CI_ENC1:     PUSH    DE
143
CI_ENC1:     PUSH    DE
Line 291... Line 295...
291
_1:          CALL    CI_CVT
295
_1:          CALL    CI_CVT
292
             LD      (IX-_KS_UND+1),E
296
             LD      (IX-_KS_UND+1),E
293
             LD      (IX-_KS_UNDS),D
297
             LD      (IX-_KS_UNDS),D
294
             RET     NC
298
             RET     NC
295
             LD      A,E
299
             LD      A,E
296
             AND     _KS_CTRL<<1+_KS_ALT<<1;(1 SHL _KS_CTRL) + (1 SHL _KS_ALT)
300
             AND     M_KS_CTRL + M_KS_ALT;(1 SHL _KS_CTRL) + (1 SHL _KS_ALT)
297
             CP      _KS_CTRL<<1+_KS_ALT<<1;(1 SHL _KS_CTRL) + (1 SHL _KS_ALT)
301
             CP      M_KS_CTRL + M_KS_ALT;(1 SHL _KS_CTRL) + (1 SHL _KS_ALT)
298
             JR      Z,CHK_CA
302
             JR      Z,CHK_CA
299
             CP      _KS_ALT<<1;1 SHL _KS_ALT
303
             CP      B_KS_ALT<<1;1 SHL _KS_ALT
300
             JR      Z,_L1_
304
             JR      Z,_L1_
301
             LD      A,D
305
             LD      A,D
302
             CP      "z"
306
             CP      "z"
303
             JR      Z,RUS_LAT_SW
307
             JR      Z,RUS_LAT_SW
304
             CP      "o"
308
             CP      "o"
Line 342... Line 346...
342
             JR      NZ,_L1_
346
             JR      NZ,_L1_
343
             JP      ENTR2;##
347
             JP      ENTR2;##
344
 
348
 
345
RUS_LAT_SW:
349
RUS_LAT_SW:
346
             LD      A,14
350
             LD      A,14
347
             BIT     _KS_RUS,E
351
             BIT     B_KS_RUS,E
348
             RET     NZ
352
             RET     NZ
349
             INC     A
353
             INC     A
350
             RET
354
             RET
351
 
355
 
352
_CI_TAB:     DB      5,24,19,4,18,3,0,0,15,7
356
_CI_TAB:     DB      5,24,19,4,18,3,0,0,15,7
Line 387... Line 391...
387
             LD      A,OLDSC_TL
391
             LD      A,OLDSC_TL
388
             SUB     C
392
             SUB     C
389
             LD      H,A
393
             LD      H,A
390
PAFRET:      LD      D,0
394
PAFRET:      LD      D,0
391
             OR      A
395
             OR      A
392
             BIT     _KS_SHFT,E
396
             BIT     B_KS_SHFT,E
393
             JR      Z,PFR_1
397
             JR      Z,PFR_1
394
             SET     7,D
398
             SET     7,D
395
             RET
399
             RET
396
PFR_1:       BIT     _KS_CTRL,E
400
PFR_1:       BIT     B_KS_CTRL,E
397
             RET     Z
401
             RET     Z
398
             SET     7,D
402
             SET     7,D
399
             SET     6,D
403
             SET     6,D
400
             RET
404
             RET
401
 
405