Subversion Repositories pentevo

Rev

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

Rev Author Line No. Line
801 savelij 1
 
1186 savelij 2
; LAST UPDATE: 16.02.2025 savelij
801 savelij 3
 
1186 savelij 4
X4DUMP          EQU 0x0C
5
Y4DUMP          EQU 0x05
801 savelij 6
 
7
EDIT_CMOS       DI
8
                LD A,%01001111
9
                CALL CLEAR_TXTSCR
1186 savelij 10
                LD H,CMOS.BYTE_00
801 savelij 11
                CALL READCMOS
1186 savelij 12
                AND CMOS_ED.M_TYPE_FONT
801 savelij 13
                LD (TYPEFONT),A
14
                LD DE,0
1186 savelij 15
                LD BC,0x5019
801 savelij 16
                CALL RAMKA4TXTSCR
1186 savelij 17
                LD DE,0x2201
801 savelij 18
                LD HL,TXT_EDITCMOS2
19
                CALL PRTT_MSG
1186 savelij 20
                LD DE,0x1217
801 savelij 21
                LD HL,TXT_EDITCMOS1
22
                CALL PRTT_MSG
23
                LD IX,0
24
                CALL INVERS_CUR
25
EC02            CALL LOAD_CMOS
26
                CALL PRINT_DUMP
27
                CALL HELP_REG
28
                CALL TXTMODE_ON
29
EC01            EI
30
                HALT
1186 savelij 31
                LD H,CMOS.REG_C
801 savelij 32
                CALL READCMOS
1186 savelij 33
                BIT CMOSREG.B_C_RO_UF,A
801 savelij 34
                CALL NZ,PRINT0STROKA
35
                BIT 5,(IY+1)
36
                JP Z,EC01
37
                RES 5,(IY+1)
1186 savelij 38
                LD A,(0x5C08)
39
                CP 'l'
801 savelij 40
                JR Z,EC02
1186 savelij 41
                CP 'x'
801 savelij 42
                JR Z,EC06
1186 savelij 43
                CP 's'
801 savelij 44
                JR NZ,EC03
45
                CALL SAVE_CMOS
46
                JR EC01
47
 
48
EC03            CP 9
49
                CALL Z,CUR_RIGHT
50
                CP 8
51
                CALL Z,CUR_LEFT
1186 savelij 52
                CP 0x0B
801 savelij 53
                CALL Z,CUR_UP
1186 savelij 54
                CP 0x0A
801 savelij 55
                CALL Z,CUR_DOWN
1186 savelij 56
                CP '0'
801 savelij 57
                JR C,EC01
1186 savelij 58
                CP ':'
801 savelij 59
                JR C,EC05
60
                RES 5,A
1186 savelij 61
EC04            CP 'A'
801 savelij 62
                JR C,EC01
1186 savelij 63
                CP 'G'
801 savelij 64
                JR NC,EC01
65
EC05            CALL INPUT_HALFBYTE
66
                JR EC01
67
 
68
EC06            CALL TXTMODE_OFF
1186 savelij 69
                LD A,0x10
801 savelij 70
                CALL SET_7FFD
71
                JP RESTART
72
 
1186 savelij 73
; �ᮢ���� ������� ࠬ�� ���� � ⥪�⬮��
74
; D-X E-Y B-H C-V
801 savelij 75
RAMKA4TXTSCR    DEC B
76
                DEC B
77
                DEC C
78
                DEC C
79
                PUSH DE
80
                PUSH BC
1186 savelij 81
                LD A,'�'
801 savelij 82
                CALL PRTSYMTXTMODE
1186 savelij 83
R4TXTS1         LD A,'�'
801 savelij 84
                CALL PRTSYMTXTMODE
85
                DJNZ R4TXTS1
1186 savelij 86
                LD A,'�'
801 savelij 87
                CALL PRTSYMTXTMODE
88
                DEC D
89
                INC E
1186 savelij 90
R4TXTS2         LD A,'�'
801 savelij 91
                CALL PRTSYMTXTMODE
92
                DEC D
93
                INC E
94
                DEC C
95
                JR NZ,R4TXTS2
96
                POP BC
97
                POP DE
98
                INC E
1186 savelij 99
R4TXTS3         LD A,'�'
801 savelij 100
                CALL PRTSYMTXTMODE
101
                DEC D
102
                INC E
103
                DEC C
104
                JR NZ,R4TXTS3
1186 savelij 105
                LD A,'�'
801 savelij 106
                CALL PRTSYMTXTMODE
1186 savelij 107
R4TXTS4         LD A,'�'
801 savelij 108
                CALL PRTSYMTXTMODE
109
                DJNZ R4TXTS4
1186 savelij 110
                LD A,'�'
801 savelij 111
                JP PRTSYMTXTMODE
112
 
1186 savelij 113
INPUT_HALFBYTE  SUB '0'
114
                CP 0x0A
801 savelij 115
                JR C,IHB1
116
                SUB 7
117
IHB1            LD E,A
118
                LD A,IXH
119
                LD L,A
1186 savelij 120
                LD H,0xC0
801 savelij 121
                LD A,IXL
122
                AND A
123
                JR NZ,LOW_HALF
124
                LD A,(HL)
1186 savelij 125
                AND 0x0F
801 savelij 126
                LD D,A
127
                LD A,E
128
                RRCA
129
                RRCA
130
                RRCA
131
                RRCA
132
                OR D
133
                JR LOW_HALF1
134
 
135
LOW_HALF        LD A,(HL)
1186 savelij 136
                AND 0xF0
801 savelij 137
                OR E
138
LOW_HALF1       LD (HL),A
139
                LD A,L
140
                PUSH AF
141
                LD D,A
142
                LD E,(HL)
143
                EX DE,HL
144
                CALL WRITECMOS
145
                POP AF
146
                CALL PRINT_STROKA
147
                JP CUR_RIGHT
148
 
149
CUR_UP          PUSH AF
150
                CALL INVERS_CUR
151
                LD A,IXH
1186 savelij 152
                SUB 0x10
153
                CP 0xF0
801 savelij 154
                JR C,CUR_UP1
1186 savelij 155
                AND 0x0F
156
                OR 0xE0
801 savelij 157
CUR_UP1         LD IXH,A
158
                JR ECUR_RIGHT
159
 
160
CUR_DOWN        PUSH AF
161
                CALL INVERS_CUR
162
                LD A,IXH
1186 savelij 163
                ADD A,0x10
164
                CP 0xF0
801 savelij 165
                JR C,CUR_DOWN1
1186 savelij 166
                AND 0x0F
801 savelij 167
CUR_DOWN1       LD IXH,A
168
                JR ECUR_RIGHT
169
 
170
CUR_RIGHT       PUSH AF
171
                CALL INVERS_CUR
172
                INC IXL
173
                LD A,IXL
174
                CP 2
175
                JR C,ECUR_RIGHT
176
                INC IXH
177
                LD A,IXH
1186 savelij 178
                CP 0xF0
801 savelij 179
                JR C,CUR_RIGHT1
180
                LD IXH,0
181
CUR_RIGHT1      LD IXL,0
182
ECUR_RIGHT      CALL HELP_REG
183
                CALL INVERS_CUR
184
                POP AF
185
                RET
186
 
187
CUR_LEFT        PUSH AF
188
                CALL INVERS_CUR
189
                DEC IXL
190
                JP P,ECUR_RIGHT
191
                LD IXL,1
192
                DEC IXH
193
                LD A,IXH
1186 savelij 194
                CP 0xF0
801 savelij 195
                JR C,ECUR_RIGHT
1186 savelij 196
                LD IX,CMOS.CRCHIGH << 8 + 1
801 savelij 197
                JR ECUR_RIGHT
198
 
199
HELP_REG        LD A,IXH
200
                LD HL,EMPTY_STROKA
1186 savelij 201
                CP 0x12
801 savelij 202
                JR NC,HELP_REG1
203
                LD L,A
204
                LD H,0
205
                ADD HL,HL
206
                ADD HL,HL
207
                ADD HL,HL
208
                ADD HL,HL
209
                ADD HL,HL
210
                LD DE,TXT_HELPREG
211
                ADD HL,DE
1186 savelij 212
HELP_REG1       LD DE,0x1203
801 savelij 213
                JP PRTT_MSG
214
 
1186 savelij 215
INVERS_CUR      LD A,0x1B
801 savelij 216
                CALL SET_7FFD
217
                LD A,IXH
1186 savelij 218
                AND 0xF0
801 savelij 219
                RRCA
220
                RRCA
221
                RRCA
222
                RRCA
223
                ADD A,Y4DUMP
224
                LD L,A
225
                LD H,0
226
                LD D,H
1186 savelij 227
        REPT 6
801 savelij 228
                ADD HL,HL
1186 savelij 229
        ENDM
801 savelij 230
                LD A,IXH
1186 savelij 231
                AND 0x0F
801 savelij 232
                LD E,A
233
                ADD A,A
234
                ADD A,E
235
                LD E,A
236
                LD A,IXL
237
                ADD A,X4DUMP+7
238
                ADD A,E
239
                LD E,A
240
                SRL E
241
                ADD HL,DE
242
                AND 1
243
                RRCA
244
                RRCA
245
                RRCA
1186 savelij 246
                OR 0xC1
801 savelij 247
                LD D,A
1186 savelij 248
                LD E,0xC0
801 savelij 249
                ADD HL,DE
250
                LD A,(HL)
251
                XOR %00000100
252
                LD (HL),A
1186 savelij 253
                LD A,0x1F
801 savelij 254
                JP SET_7FFD
255
 
1186 savelij 256
; ���⪠ ⥪�⬮����� ��࠭�
801 savelij 257
CLEAR_TXTSCR    PUSH AF
1186 savelij 258
                LD A,0x1F
801 savelij 259
                CALL SET_7FFD
1186 savelij 260
                LD HL,0xC1C0
261
                LD A,' '
801 savelij 262
                CALL CLS_TXTSCR
1186 savelij 263
                LD HL,0xE1C0
801 savelij 264
                CALL CLS_TXTSCR
1186 savelij 265
                LD A,0x1B
801 savelij 266
                CALL SET_7FFD
1186 savelij 267
                LD HL,0xC1C0
801 savelij 268
                POP AF
269
                CALL CLS_TXTSCR
1186 savelij 270
                LD HL,0xE1C0
801 savelij 271
                CALL CLS_TXTSCR
1186 savelij 272
                LD A,0x1F
801 savelij 273
                JP SET_7FFD
274
 
1186 savelij 275
; ���⪠ ���窠 ⥪�⬮����� ��࠭�
801 savelij 276
CLS_TXTSCR      LD D,H
277
                LD E,L
1186 savelij 278
                LD BC,0x63F
801 savelij 279
                LD (HL),A
280
                INC DE
281
                LDIR
282
                RET
283
 
1186 savelij 284
; ����� ⥪�⮢�� ��ப� �� ��⬮���� ��࠭�
801 savelij 285
PRTT_MSG        LD A,(HL)
286
                INC HL
287
                AND A
288
                RET Z
289
                CALL PRTSYMTXTMODE
290
                JR PRTT_MSG
291
 
1186 savelij 292
PRINT0STROKA    LD H,CMOS.SECOND
801 savelij 293
                CALL READCMOS
1186 savelij 294
                LD (0xC000),A
295
                LD H,CMOS.MINUTE
801 savelij 296
                CALL READCMOS
1186 savelij 297
                LD (0xC002),A
298
                LD H,CMOS.HOUR
801 savelij 299
                CALL READCMOS
1186 savelij 300
                LD (0xC004),A
801 savelij 301
                XOR A
302
                LD L,A
303
                PUSH IX
304
                LD IX,0
305
                CALL PRINT_STROKA1
306
                POP IX
307
                RET
308
 
309
PRINT_STROKA    LD A,IXH
1186 savelij 310
                AND 0xF0
801 savelij 311
                LD L,A
312
PRINT_STROKA1   LD B,1
313
                LD H,0
314
                RRCA
315
                RRCA
316
                RRCA
317
                RRCA
318
                ADD A,Y4DUMP
319
                LD E,A
320
                LD D,X4DUMP
321
                JR PRINT1STROKA
322
 
1186 savelij 323
PRINT_DUMP      LD B,0x0F
324
                LD DE,X4DUMP*0x100+Y4DUMP
801 savelij 325
                LD HL,0
326
PRINT1STROKA    CALL PRTT_SMESH
1186 savelij 327
                LD A,0xC0
801 savelij 328
                OR H
329
                LD H,A
330
                CALL PRTT_STROKA
331
                LD A,H
1186 savelij 332
                AND 0x3F
801 savelij 333
                LD H,A
334
                INC E
335
                LD D,X4DUMP
336
                DJNZ PRINT1STROKA
337
                RET
338
 
1186 savelij 339
PRTT_STROKA     LD C,0x10
801 savelij 340
PRTT_STROKA1    LD A,(HL)
341
                INC HL
342
                CALL PRTT_A_
1186 savelij 343
                LD A,' '
801 savelij 344
                CALL PRTSYMTXTMODE
345
                DEC C
346
                JR NZ,PRTT_STROKA1
347
                RET
348
 
349
PRTT_SMESH      CALL PRTT_HL_
1186 savelij 350
                LD A,':'
801 savelij 351
                CALL PRTSYMTXTMODE
1186 savelij 352
                LD A,' '
801 savelij 353
                JR PRTSYMTXTMODE
354
 
355
PRTT_HL_        LD A,H
356
                CALL PRTT_A_
357
                LD A,L
358
PRTT_A_         PUSH AF
359
                RRCA
360
                RRCA
361
                RRCA
362
                RRCA
363
                CALL PRTT_A_1
364
                POP AF
1186 savelij 365
PRTT_A_1        AND 0x0F
366
                CP 0x0A
801 savelij 367
                CCF
1186 savelij 368
                ADC A,'0'
801 savelij 369
                DAA
1186 savelij 370
                AND 0x7F
371
; ����� ᨬ���� �� ⥪�⬮���� ��࠭�
372
; D-X E-Y
801 savelij 373
PRTSYMTXTMODE   PUSH DE
374
                PUSH HL
375
                LD L,A
376
                LD A,0
377
TYPEFONT        EQU $-1
378
                AND A
379
                LD A,L
380
                JR NZ,.LOOP
1186 savelij 381
                CP 0x80
801 savelij 382
                JR C,.LOOP
383
                LD HL,CONV_CP866_ATM
384
                PUSH BC
385
                RES 7,A
386
                LD B,0
387
                LD C,A
388
                ADD HL,BC
389
                LD A,(HL)
390
                POP BC
391
.LOOP           PUSH AF
392
                LD L,E
393
                LD A,D
394
                LD H,0
395
                LD D,H
396
                ADD HL,HL
397
                ADD HL,HL
398
                ADD HL,HL
399
                ADD HL,HL
400
                ADD HL,HL
401
                ADD HL,HL
402
                LD E,A
403
                SRL E
404
                ADD HL,DE
405
                AND 1
406
                RRCA
407
                RRCA
408
                RRCA
1186 savelij 409
                OR 0xC1
801 savelij 410
                LD D,A
1186 savelij 411
                LD E,0xC0
801 savelij 412
                ADD HL,DE
413
                POP AF
414
                LD (HL),A
415
                POP HL
416
                POP DE
417
                INC D
418
                RET
419
 
420
SET_C_A         OUT (C),A
421
                RET
422
 
1186 savelij 423
LOAD_CMOS       LD HL,0xC000
801 savelij 424
                LD D,0
425
EDITCMOS1       EX DE,HL
426
                CALL READCMOS
427
                EX DE,HL
428
                LD (HL),E
429
                INC HL
430
                INC D
1186 savelij 431
                LD A,0xF0
801 savelij 432
                CP D
433
                JR NZ,EDITCMOS1
434
                RET
435
 
1186 savelij 436
SAVE_CMOS       LD HL,0xC000
801 savelij 437
                LD D,0
438
SAVECMOS1       LD E,(HL)
439
                EX DE,HL
440
                CALL WRITECMOS
441
                EX DE,HL
442
                INC HL
443
                INC D
1186 savelij 444
                LD A,0xF0
801 savelij 445
                CP D
446
                JR NZ,SAVECMOS1
447
                RET
448
 
1186 savelij 449
; �� �室�: H-���� �祩��
450
;           L-���⠭��� ���祭��
801 savelij 451
READCMOS        DI
452
                PUSH BC
453
                LD BC,PENT_CONF
1186 savelij 454
                LD A,CMOS_ON                    ; ࠧ�襭�� ����㯠 � �����
801 savelij 455
                OUT (C),A
456
                LD B,HIGH (CMOS_SET_ADR)
457
                OUT (C),H
458
                LD B,HIGH (CMOS_RD_WR)
459
                IN L,(C)
1186 savelij 460
                LD A,CMOS_OFF                   ; ����� ����㯠 � �����
801 savelij 461
                LD B,HIGH (PENT_CONF)
462
                OUT (C),A
463
                POP BC
464
                LD A,L
465
                AND A
466
                RET
467
 
1186 savelij 468
; �� �室�: H-���� �祩��
469
;           L-�� �㤠 �������
1026 savelij 470
WRITECMOS
471
        RST8 _CMOS_RW,_WRITE_CMOS
801 savelij 472
                RET
473
 
1186 savelij 474
; �⥭�� ���ᨨ FPGA ��� BOOTLOADER, �᫨ �� ���⥢�
801 savelij 475
GET_VERS_EVO    LD C,L
1186 savelij 476
                LD H,CMOS.READ_PS2
477
                CALL WRITECMOS                  ; ��襬 � ���� 0xF0 ��� ����祭�� ���ᨨ
478
                CALL READCMOS                   ; �⠥� �⢥�
479
                CP C                            ; ᮢ���� � ⥬ �� ����ᠭ�, �� �����ন������
480
                RET Z                           ; � �� �� ���⥢� (��� ����� FPGA ����). ��室��
481
                INC A                           ; ��襫 0xFF, ����� �ᮢ ����
482
                RET Z                           ; ��室��
801 savelij 483
                DI
1186 savelij 484
                DEC A                           ; �����頥� ��⠭��� ���祭��
801 savelij 485
                PUSH DE
1186 savelij 486
                LD (DE),A                       ; �������� � ���� 㦥 ���⠭�� ����
801 savelij 487
                INC DE
1186 savelij 488
                LD B,0x0F                       ; ��⠫��� ������ ��⠫�� �� 15 ����
801 savelij 489
GVE1            INC H
1186 savelij 490
                CALL READCMOS                   ; �⠥� ����
801 savelij 491
                LD (DE),A
492
                INC DE
1186 savelij 493
                DJNZ GVE1                       ; �⠥� ���� �� ����� �� �������
494
                POP DE                          ; �஢��� � ���� 12 ���� ⥪��
801 savelij 495
                LD H,D
496
                LD L,E
1186 savelij 497
                LD B,0x0C                       ; �᫨ ⥪�� ���� �饬 ���� 0 (�ਧ��� ���� ⥪��)
801 savelij 498
GVE2            LD A,(DE)
499
                AND A
500
                JR Z,GVE3
501
                INC DE
502
                DJNZ GVE2
1186 savelij 503
GVE3            LD BC,0x0C                      ; ���ࠫ� �� ���� 2 ���� ���� � ᯥ��ଠ�
801 savelij 504
                ADD HL,BC
505
                LD C,(HL)
506
                INC HL
507
                LD B,(HL)
508
                EX DE,HL
1186 savelij 509
                LD (HL),' '                     ; ������塞 � ⥪��� �஡��-ࠧ����⥫�
801 savelij 510
                INC HL
511
 
512
;����������� ����
513
UNVERS          LD A,C
1186 savelij 514
                AND 0x1F                        ; �㦭� 5 ���-�᫮ �����
515
                CALL A2TXT                      ; �������� � 㪫���� ����
801 savelij 516
                SRL B
1186 savelij 517
                RR C                            ; ᤢ��㫨 ��� 楫��⭮�� ����� �����
518
                LD A,C                          ; ��﫨 ���� �����
801 savelij 519
                RRCA
520
                RRCA
521
                RRCA
1186 savelij 522
                RRCA                            ; ᤢ��㫨 � ����訥 ����
523
                AND 0x0F                        ; ��� �㦭� ⮫쪮 4 ��� �����
524
                LD (HL),'.'                     ; ࠧ����⥫쭠� �窠
801 savelij 525
                INC HL
1186 savelij 526
                CALL A2TXT                      ; �������� � 㪫���� �����
527
                LD (HL),'.'                     ; ࠧ����⥫쭠� �窠
801 savelij 528
                INC HL
1186 savelij 529
                LD (HL),'2'
801 savelij 530
                INC HL
1186 savelij 531
                LD (HL),'0'                     ; �������� � ���� ��� ��ન
801 savelij 532
                INC HL
1186 savelij 533
                LD A,B                          ; ��﫨 ����� ����
534
                AND 0x3F                        ; �㦭� ⮫쪮 6 ���
535
                CALL A2TXT                      ; �������� � 㪫���� ����
536
                BIT 6,B                         ; �᫨ ��� 6 (ᤢ����� ��� 7) ��⠭�����
537
                RET NZ                          ; � �����蠥� ��ப�
538
                EX DE,HL                        ; ���� ����� ���, � 祬 ������塞 ⥪�� � ����
801 savelij 539
                LD HL,TXT_BETA
540
                LD BC,5
541
                LDIR
542
                EX DE,HL
543
                RET
544
 
1186 savelij 545
; �ᯥ�⪠ �� ��࠭� �६���, ���� � ��� ������
801 savelij 546
PRINTTIME       LD A,(ERS_FLAGS)
547
                AND M_CLOCK_ON
1186 savelij 548
                RET Z                           ; ��� �� �����㦥��, ��室�� ��祣� �� �뢮��
549
                LD H,CMOS.REG_C
801 savelij 550
                CALL READCMOS
1186 savelij 551
                AND CMOSREG.M_C_RO_UF
552
                RET Z                           ; �᫨ �६� �� �� ����������, ��室�� ��祣� �� �뢮��
553
                LD H,CMOS.BYTE_01
801 savelij 554
                CALL READCMOS
1186 savelij 555
                AND CMOS_EC.M_CLOCK_VIEW
556
                JR NZ,VIDEOMODE                 ; �⮡ࠦ���� �몫�祭�, ��室�� ��祣� �� �뢮��
801 savelij 557
                DI
558
                EXX
1186 savelij 559
                LD BC,TXT_TIME                  ; �⥭�� � �८�ࠧ������ �६���
560
                LD H,CMOS.HOUR
561
                CALL READCMOS                   ; ���⠫� ���
1026 savelij 562
                LD (SCRSAV.CURR+2),A
1186 savelij 563
                CALL BYTE2TXT                   ; ᪮����⨫� ��� � 㪫����� � ����
801 savelij 564
                LD A,(BC)
1186 savelij 565
                XOR ':'-' '                     ; �������� �����饣� �������
801 savelij 566
                LD (BC),A
567
                INC BC
1186 savelij 568
                LD H,CMOS.MINUTE
569
                CALL READCMOS                   ; ���⠫� ������
1026 savelij 570
                LD (SCRSAV.CURR+1),A
1186 savelij 571
                CALL BYTE2TXT                   ; ᪮����⨫� ��� � 㪫����� � ����
801 savelij 572
                LD A,(BC)
1186 savelij 573
                XOR ':'-' '                     ; �������� �����饣� �������
801 savelij 574
                LD (BC),A
575
                INC BC
1186 savelij 576
                LD H,CMOS.SECOND
577
                CALL READCMOS                   ; ���⠫� ᥪ㭤�
1026 savelij 578
                LD (SCRSAV.CURR),A
801 savelij 579
                CALL BYTE2TXT
1186 savelij 580
                LD BC,TXT_DATA                  ; ����� �⥭�� � �८�ࠧ������ ����
581
                LD H,CMOS.DAY_MONTH
801 savelij 582
                CALL READCMOS
583
                CALL BYTE2TXT
584
                INC BC
1186 savelij 585
                LD H,CMOS.MONTH
801 savelij 586
                CALL READCMOS
587
                CALL BYTE2TXT
588
                INC BC
1186 savelij 589
                LD H,CMOS.YEAR
801 savelij 590
                CALL READCMOS
591
                CALL BYTE2TXT
1186 savelij 592
                LD HL,BUFF_TIME                 ; ���⥬ �६� �� ����
1026 savelij 593
        RST8 _PRINT_MESSAGE
801 savelij 594
                EXX
595
 
596
VIDEOMODE       DI
1186 savelij 597
                LD HL,CMOS.READ_PS2 << 8 + 3
801 savelij 598
                LD BC,PENT_CONF
1186 savelij 599
                LD A,CMOS_ON                    ; ࠧ�襭�� ����㯠 � �����
801 savelij 600
                OUT (C),A
601
                LD B,HIGH (CMOS_SET_ADR)
602
                OUT (C),H
603
                LD B,HIGH (CMOS_RD_WR)
604
                OUT (C),L
1186 savelij 605
                LD A,CMOS_OFF                   ; ����� ����㯠 � �����
801 savelij 606
                LD B,HIGH (PENT_CONF)
607
                OUT (C),A
608
                CALL READCMOS
609
                LD DE,TV_VGA
610
                PUSH AF
611
                AND %00110000
612
                RRCA
613
                RRCA
614
                LD C,A
615
                LD B,0
616
                LD HL,TXT_HZ
617
                ADD HL,BC
618
                LDI
619
                LDI
620
                LDI
621
                LDI
622
                INC DE
623
                POP AF
624
                BIT 0,A
625
                LD HL,TXT_TVVGA
626
                JR Z,VMODE1
627
                INC HL
628
                INC HL
629
                INC HL
630
VMODE1          LDI
631
                LDI
632
                LDI
1186 savelij 633
                LD HL,TXT_VMODE                 ; ���⥬ ⥪�騩 ����� ०��
1026 savelij 634
        RST8 _PRINT_MESSAGE
801 savelij 635
                RET
636
 
1186 savelij 637
; ��ॢ�� "A" � ������� � � ⥪��
801 savelij 638
A2TXT           PUSH HL
639
                LD L,A
640
                LD H,0
641
                LD DE,10
642
                XOR A
643
                DEC A
644
                INC A
645
                SBC HL,DE
646
                JR NC,$-3
647
                ADD HL,DE
1186 savelij 648
                ADD A,'0'
801 savelij 649
                LD D,A
650
                LD A,L
1186 savelij 651
                ADD A,'0'
801 savelij 652
                POP HL
653
                LD (HL),D
654
                INC HL
655
                LD (HL),A
656
                INC HL
657
                RET
658
 
659
BYTE2TXT        LD L,A
1186 savelij 660
                LD H,'0'
801 savelij 661
                RRCA
662
                RRCA
663
                RRCA
664
                RRCA
1186 savelij 665
                AND 0x0F
801 savelij 666
                ADD A,H
667
                LD (BC),A
668
                INC BC
669
                LD A,L
1186 savelij 670
                AND 0x0F
801 savelij 671
                ADD A,H
672
                LD (BC),A
673
                INC BC
674
                RET
675
 
1026 savelij 676
TXTMODE_ON
677
        PEC_ON M_SHADOW_BF
1186 savelij 678
                LD BC,0xFF77
679
                LD A,0xA6
801 savelij 680
                CALL SET_C_A
1026 savelij 681
        PEC_OFF M_SHADOW_BF
801 savelij 682
                RET
683
 
1026 savelij 684
TXTMODE_OFF
685
        PEC_ON M_SHADOW_BF
1186 savelij 686
                LD BC,0xFF77
687
                LD A,0xA3
801 savelij 688
                CALL SET_C_A
1026 savelij 689
        PEC_OFF M_SHADOW_BF
801 savelij 690
                RET
1026 savelij 691
 
692
CHECK_SCREENSAVER
693
                LD A,(SCRSAV.TIMEOUT)
694
                AND A
695
                RET Z
696
                PUSH AF
697
                LD HL,SCRSAV.CURR
698
                LD DE,(SCRSAV.START)
699
                LD BC,(SCRSAV.START+2)
700
                CALL BCDEHLM
701
                POP AF
702
                CP D
703
                RET NZ
704
                LD A,B
705
                OR E
706
                RET NZ
707
                CALL START_SONGLN
708
RESET_SCREENSAVER
709
                LD DE,SCRSAV.START
1186 savelij 710
                LD H,CMOS.SECOND
1026 savelij 711
                CALL READCMOS
712
                LD (DE),A
713
                INC DE
1186 savelij 714
                LD H,CMOS.MINUTE
1026 savelij 715
                CALL READCMOS
716
                LD (DE),A
717
                INC DE
1186 savelij 718
                LD H,CMOS.HOUR
1026 savelij 719
                CALL READCMOS
720
                LD (DE),A
721
                INC DE
722
                XOR A
723
                LD (DE),A
724
                RET