Subversion Repositories pentevo

Rev

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

Rev Author Line No. Line
623 savelij 1
 
835 savelij 2
;LAST UPDATE: 04.08.2019 savelij
623 savelij 3
 
764 savelij 4
                TITLE "extend.a80"
5
 
689 savelij 6
;[ˆ”€ „‹Ÿ ‘Ž‡„€ˆŸ 9 ‘…Š’Ž€ Ž‚ŽƒŽ „ˆ‘Š€]
623 savelij 7
DSKINFO         DB 0                    ;+0XE1-ŽŒ… …‚ŽƒŽ ‘‚ŽŽ„ŽƒŽ ‘…Š’Ž€
8
                DB 1                    ;+0XE2-ŽŒ… …‚ŽƒŽ ‘‚ŽŽ„ŽƒŽ ’…Š€
9
                DB 0X16                 ;+0XE3-’ˆ „ˆ‘Š…’›
10
                DB 0                    ;+0XE4-ŠŽ‹ˆ—…‘’‚Ž ”€‰‹Ž‚ € „ˆ‘Š…’…
11
SECFREE         DW 2544                 ;+0XE5-ŠŽ‹ˆ—…‘’‚Ž ‘‚ŽŽ„›• ‘…Š’ŽŽ‚
12
                DB 0X10                 ;+0XE7-ˆ„…’ˆ”ˆŠ€–ˆŽ›‰ ŠŽ„ TRDOS
13
                DW 0                    ;+0XE8-2 €‰’€ 0
14
                DUPL 9," "              ;+0XEA-9 €‰’ 0X20
15
                DB 0                    ;+0XF3-1 €‰’ 0
16
                DB 0                    ;+0XF4-ŠŽ‹ˆ—…‘’‚Ž “„€‹…›• ”€‰‹Ž‚
17
                DB "RAMDISKO"           ;+0XF5-ˆŒŸ „ˆ‘Š…’›
18
DSK_END
19
 
689 savelij 20
;[Ž€Ž’—ˆŠ ‚›‡Ž‚€ RST 8]
623 savelij 21
DOS2RST8        EX (SP),HL                      ;HL
22
                PUSH AF                         ;AF
23
                PUSH BC                         ;BC
24
                LD A,R
25
                JP PE,DOS2RST8_01
26
                LD A,R
27
DOS2RST8_01     DI
28
                PUSH AF                         ;RF
29
                PUSH HL                         ;ADR_RET
30
                PUSH DE                         ;DE
31
                IN A,(PEVO_CONF)
32
                LD L,A
33
                OR 1
34
                OUT (PEVO_CONF),A
35
                LD BC,RD_1WINA0
36
                IN A,(C)
37
                AND 0X3E
38
                LD BC,RD_1WINA0
39
                IN H,(C)
40
                RES 0,H
41
                LD B,HIGH (RD_DOS7FFD)
42
                IN E,(C)
43
                RES 4,E
44
                DEC B
45
                IN D,(C)
46
                LD BC,WIN_A0
47
                OUT (C),A
48
                LD B,HIGH (WIN_P0)
49
                XOR A
50
                JP ADR_SEL_ROM
51
 
52
EDOS2RST8       LD BC,DOS_NOEMUL
53
                LD A,(BC)
54
                AND 0X3E
55
                CP E
56
                JR Z,EDOS2RST02
57
                INC BC
58
EDOS2RST02      LD A,(BC)
59
                LD BC,WIN_A0
60
                CALL WR_BYTE_RET
61
                LD A,L
62
                OUT (PEVO_CONF),A
63
                POP DE
64
                POP HL
65
                POP AF
66
                JP PO,EDOS2RST01
67
                EI
68
EDOS2RST01      POP BC
69
                POP AF
70
                EX (SP),HL
71
                RET
72
 
73
;ABCDEFGHIJKLMNOPQRSTUVWXYZ
74
EXTEND_COM     
702 savelij 75
                BBW "CD",CD
76
                BBW "CLRCMOS",CLRCMOS
77
                BBW "DIR",DIR
78
                BBW "DRIVE",DRIVE
79
                BBW "HELP",HELP
80
                BBW "MOUNT",MOUNT
81
                BBW "UMOUNT",UMOUNT
82
                BBW "VER",PRT_VERS
83
                BBW "VIRT",SET_VIRT
835 savelij 84
                BBW "ROM",VIEW_ROM
623 savelij 85
                DB 0
86
 
835 savelij 87
VIEW_ROM        LD HL,ROM_VER
88
                JP PRT_ROMVER
89
 
689 savelij 90
;[Ž€Ž’—ˆŠ €‘˜ˆ…›• ŠŽŒ€„]
623 savelij 91
END_EXT_COM     INC DE
92
                LD A,(DE)
93
                CP ":"
94
                DEC DE
95
                JP NZ,SINTAX_ERROR
96
                LD A,(DE)
97
                AND 0DFH
98
                SUB "A"
99
                JP C,SINTAX_ERROR
100
                CP 4
101
                JR NC,SELFATDRV
102
                LD (TRD_5CF6),A                 ; „ˆ‘ŠŽ‚Ž„ „‹Ÿ ‚…Œ…Ž‰ Ž…€–ˆˆ
103
                LD (TRD_5D19),A                 ; „ˆ‘ŠŽ‚Ž„ Ž “ŒŽ‹—€ˆž
104
                LD B,A
105
                LD A,(TRD_5D16)                 ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
106
                AND 7CH
107
                OR B
108
                LD (TRD_5D16),A                 ; ŠŽˆŸ ‘ˆ‘’…ŒŽƒŽ …ƒˆ‘’€ (Ž’ #FF)
833 savelij 109
                LD HL,ERR_OK
110
                PUSH HL
111
SET_CURRVIRT    LD H,VIRT_REAL_DRIVE
112
                CALL READCMOS
834 savelij 113
                AND %00000011
833 savelij 114
                LD L,A
115
                LD A,B
116
                RLCA
117
                RLCA
118
                OR L
119
                LD L,A
120
                RST8D _CMOS_RW,_WRITE_CMOS
888 savelij 121
;               RST8D _MOUNTER,_GET_VIRT_BITS
122
;               RST30 _SET_VIRT_BITS
835 savelij 123
                RRCA
124
                RRCA
125
                AND 3
126
                OR 0X3C
678 savelij 127
                RST30 _OUT_FF
833 savelij 128
                RET
623 savelij 129
 
130
SELFATDRV       SUB 4
131
                PUSH AF
678 savelij 132
                RST8D _COM_DEV,_DEVFIND
133
                RST8D _COM_DEV,_KOL_VOL
623 savelij 134
                POP AF
135
                CP E
136
                JP NC,SINTAX_ERROR
678 savelij 137
                RST8D _COM_DEV,_SET_VOL
623 savelij 138
                JP ERR_OK
139
 
140
COM_DOT         CALL EXIT_IF_SINTAX
141
                LD HL,EXTEND_COM
142
NEXT_CMP_COM    LD A,1
143
                LD (TRD_5CEF),A
144
                LD DE,(TRD_5D11)
145
                INC DE
146
                LD A,(HL)
147
                INC HL
148
                AND A
149
                JP Z,END_EXT_COM
150
                LD B,A
151
LOC_C34         LD A,(DE)
152
                AND 0DFH
153
                CP (HL)
154
                JR NZ,PROPUSK
155
                INC DE
156
                INC HL
157
                DJNZ LOC_C34
158
                LD A,(DE)
159
                CP 0DH
160
                JR Z,NO_PARAM
161
                CP " "
162
                JR Z,GET_PARAM
163
                JR LOC_C58
164
 
165
PROPUSK         INC HL
166
                DJNZ PROPUSK
167
LOC_C58         INC HL
168
                INC HL
169
                JR NEXT_CMP_COM
170
 
171
GET_PARAM       INC DE
172
NO_PARAM        LD A,(HL)
173
                INC HL
174
                LD H,(HL)
175
                LD L,A
176
                PUSH HL
177
                LD HL,END_COMAND
178
                EX (SP),HL
179
                JP (HL)
180
 
689 savelij 181
;[‚›‚Ž„ ˆŒ…ˆ ‚ˆ’“€‹œŽƒŽ „ˆ‘Š€ …‘‹ˆ … “Š€‡€Ž ˆŒŸ „‹Ÿ ˆ‡Œ……ˆŸ]
623 savelij 182
PRT_NUM_VIRT    LD HL,TXT4VIRTDRV
183
                LD B,ETXT4VIRTDRV-TXT4VIRTDRV-1
184
                CALL PRT_B_HL_
185
                LD A," "
186
                RST 0X10
187
                LD H,VIRT_REAL_DRIVE
188
                CALL READCMOS
189
                AND 3
190
                ADD A,"A"
191
                RST 0X10
192
                LD A,0X0D
193
                RST 0X10
194
                RET
195
 
689 savelij 196
;[“‘’€Ž‚Š€ ‚ˆ’“€‹œŽƒŽ „ˆ‘Š€]
623 savelij 197
SET_VIRT        LD A,(DE)
198
                CP 0X0D
199
                JR Z,PRT_NUM_VIRT
200
                LD C,A
201
                INC DE
202
                LD A,(DE)
203
                CP ":"
204
                JP NZ,SINTAX_ERROR
205
                LD A,C
206
                CALL NUMDSK2BYTE                ;Ž‹“—ˆ‹ˆ Ž‚›‰ ŽŒ… „ˆ‘ŠŽ‚Ž„€ “Š€‡€›‰ ‚ ŠŽŒ€„Ž‰ ‘’ŽŠ…
207
                LD D,A                          ;‘Ž•€ˆ‹ˆ ‚…Œ…Ž ‘„‚ˆ“’›‰ Ž‚›‰ ŽŒ… ‚ˆ’“€‹œŽƒŽ „ˆ‘ŠŽ‚Ž„€
208
                LD H,VIRT_REAL_DRIVE
209
                CALL READCMOS
210
                AND %11111100                   ;‘Ž‘ ‘’€ŽƒŽ ŽŒ…€ ‚ˆ’“€‹œŽƒŽ „ˆ‘ŠŽ‚Ž„€
211
                OR D                            ;„Ž€‚ˆ‹ˆ Ž‚›‰ ŽŒ… ‚ˆ’“€‹œŽƒŽ „ˆ‘ŠŽ‚Ž„€
212
                LD L,A
678 savelij 213
                RST8D _CMOS_RW,_WRITE_CMOS
888 savelij 214
;               AND 3
215
;               RST8D _MOUNTER,_MOUNT_RAMDISK
623 savelij 216
                RET
217
 
689 savelij 218
;[…—€’œ ‚…‘ˆˆ „Ž‘€ ˆ „€’› ŠŽŒˆ‹Ÿ–ˆˆ]
623 savelij 219
PRT_VERS        LD HL,0X3FF8
220
                LD B,6
221
                CALL PRT_B_HL_
222
                LD A," "
223
                RST 0X10
224
                LD C,(HL)
225
                INC HL
226
                LD B,(HL)
227
                PUSH BC
228
                LD HL,ZASTAVKA_VER
229
                LD B,9
230
                CALL PRT_B_HL_
231
                LD A," "
232
                RST 0X10
233
                POP BC
234
                LD A,C
235
                AND 0X1F                        ;“†› 5 ˆ’-—ˆ‘‹Ž Œ…‘Ÿ–€
236
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ „€’›
237
                SRL B
238
                RR C                            ;‘„‚ˆ“‹ˆ „‹Ÿ –…‹Ž‘’Ž‘’ˆ ŽŒ…€ Œ…‘Ÿ–€
239
                LD A,"."
240
                RST 0X10
241
                LD A,C                          ;‚‡Ÿ‹ˆ ˆ’› Œ…‘Ÿ–€
242
                RRCA
243
                RRCA
244
                RRCA
245
                RRCA                            ;‘„‚ˆ“‹ˆ ‚ Œ‹€„˜ˆ… ˆ’›
246
                AND 0X0F                        ;€Œ “†› ’Ž‹œŠŽ 4 ˆ’€ Œ…‘Ÿ–€
247
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ Œ…‘Ÿ–€
248
                LD A,"."
249
                RST 0X10
250
                LD A,B                          ;‚‡Ÿ‹ˆ ŽŒ… ƒŽ„€
251
                AND 0X3F                        ;“†› ’Ž‹œŠŽ 6 ˆ’
252
                CALL A2TXT                      ;ŠŽ‚…‘ˆŸ ˆ “Š‹€„Š€ ƒŽ„€
253
                BIT 6,B                         ;…‘‹ˆ ˆ’ 6 (‘„‚ˆ“’›‰ ˆ’ 7) “‘’€Ž‚‹…
631 savelij 254
                RET Z
623 savelij 255
                LD HL,TXT_BETA
835 savelij 256
PRT_ROMVER      RST 0X18
623 savelij 257
                LD A,0X0D
258
                RST 0X10
259
                RET
260
 
689 savelij 261
;[…—€’œ B=ŠŽ‹ˆ—…‘’‚Ž ‘ˆŒ‚Ž‹Ž‚ ˆ‡ HL=€„…‘ ’…Š‘’€ „‹Ÿ ‚›‚Ž„€]
623 savelij 262
PRT_B_HL_       LD A,(HL)
263
                INC HL
264
                RST 0X10
265
                DJNZ PRT_B_HL_
266
                RET
267
 
268
TXT_BETA        DC " beta"
269
 
689 savelij 270
;[……‚Ž„ "A" ‚ „…‘Ÿ’ˆ—Š“ ˆ ‚ ’…Š‘’]
623 savelij 271
A2TXT           LD L,A
272
                LD H,0
273
                LD DE,10
274
                XOR A
275
                DEC A
276
                INC A
277
                SBC HL,DE
278
                JR NC,$-3
279
                ADD HL,DE
280
                ADD A,"0"
281
                RST 0X10
282
                LD A,L
283
                ADD A,"0"
284
                RST 0X10
285
                RET
286
 
287
DRIVES          DC "Drives: "
288
EDRIVES
289
 
678 savelij 290
DRIVE           RST8D _COM_DEV,_DEVFIND
631 savelij 291
                JP C,FAT_NOT_FOUND
678 savelij 292
                RST8D _COM_DEV,_KOL_VOL
623 savelij 293
                LD A,"D"
294
                ADD A,E
295
                PUSH AF
296
                LD HL,DRIVES
297
                RST 0X18
298
                LD A,"E"
299
                RST 0X10
300
                LD A,"-"
301
                RST 0X10
302
                POP AF
303
                RST 0X10
304
                RET
305
 
306
TXT_DIR         DC "<DIR> "
631 savelij 307
TXT_FATERR      DC "FAT not found"
623 savelij 308
 
689 savelij 309
;[ŠŽŒ€„€ DIR]
623 savelij 310
DIR             LD B,0
311
                LD A,(DE)
312
                INC DE
313
                CP "/"
314
                JR NZ,DIR06
315
                LD A,(DE)
316
                AND 0XDF
317
                CP "L"
318
                JR NZ,DIR06
319
                LD B,A
678 savelij 320
DIR06           RST8D _COM_DEV,_DEVFIND
631 savelij 321
                JR NC,DIR061
322
FAT_NOT_FOUND   CALL OPEN_CHAN_0
323
                LD HL,TXT_FATERR                ;ˆ Ž„ŽƒŽ €‡„…‹€ … €‰„…Ž
324
                RST 0X18
325
                RET
326
 
327
DIR061          PUSH IX
623 savelij 328
                LD IXL,B
329
                CALL CLEAR_SCREEN
330
                CALL OPEN_CHAN_2
331
                LD A,2
678 savelij 332
                RST8D _COM_FAT,_POS_FILES
623 savelij 333
DIR05           LD E,0X17
334
DIR01           PUSH DE
335
                PUSH BC
336
                LD HL,TRD_5D25
678 savelij 337
                RST8D _COM_FAT,_READ_DIR
623 savelij 338
                LD DE,0X0B
339
                ADD HL,DE
340
                LD A,(HL)
341
                SBC HL,DE
342
                AND 0X10
343
                JR Z,DIR04
344
                PUSH HL
345
                LD HL,TXT_DIR
346
                RST 0X18
347
                POP HL
348
DIR04           LD A,IXL
349
                AND A
350
                JR Z,DIR08
351
                PUSH HL
678 savelij 352
                RST8D _COM_FAT,_GET_LONGNAME
623 savelij 353
                POP HL
354
DIR03           LD A,(HL)
355
                AND A
356
                JR Z,DIR02
357
                INC HL
358
                RST 0X10
359
                JR DIR03
360
 
361
DIR08           LD B,8
362
DIR081          LD A,(HL)
363
                CP " "
364
                JR Z,DIR082
365
                RST 0X10
366
                INC HL
367
                DJNZ DIR081
368
DIR082          LD A,B
369
                AND A
370
                JR Z,DIR085
371
DIR086          LD A,(HL)
372
                CP " "
373
                JR NZ,DIR085
374
                INC HL
375
                DJNZ DIR086
376
DIR085          LD A,(HL)
377
                CP " "
378
                JR Z,DIR084
379
                LD A,"."
380
                RST 0X10
381
DIR084          LD B,3
382
DIR083          LD A,(HL)
383
                CP " "
384
                JR Z,DIR02
385
                RST 0X10
386
                INC HL
387
                DJNZ DIR083
388
DIR02           LD A,0X0D
389
                RST 0X10
390
                LD A,4
391
                LD B,1
678 savelij 392
                RST8D _COM_FAT,_POS_FILES
623 savelij 393
                POP HL
394
                AND A
395
                SBC HL,BC
396
                POP DE
397
                JR Z,DIR07
398
                DEC E
399
                JR NZ,DIR01
400
                JR DIR05
401
 
402
DIR07           POP IX
403
                RET
404
 
689 savelij 405
;[ŠŽŒ€„€ CD]
623 savelij 406
CD              PUSH DE
678 savelij 407
                RST8D _COM_DEV,_DEVFIND
623 savelij 408
                POP HL
678 savelij 409
                RST8D _COM_FAT,_FIND_NAME
623 savelij 410
                JP C,SINTAX_ERROR
678 savelij 411
                RST8D _COM_FAT,_ENTER_DIR
623 savelij 412
                RET
413
 
678 savelij 414
NOMER_DRV       RST8D _COM_DEV,_DEVFIND
631 savelij 415
                CCF
416
                RET NC                          ;ˆ Ž„ŽƒŽ €‡„…‹€ … €‰„…Ž
678 savelij 417
                RST8D _COM_DEV,_KOL_VOL
623 savelij 418
                CALL CREATE_BUF
419
                LD HL,TRD_5D25
678 savelij 420
                RST8D _COM_FAT,_GET_PATH
623 savelij 421
                CALL PRINT2ZERO
422
                CALL DEL_BUF
423
                SCF
424
                RET
425
 
689 savelij 426
;[ŠŽŒ€„€ MOUNT]
623 savelij 427
MOUNT           PUSH DE
678 savelij 428
                RST8D _COM_DEV,_DEVFIND
623 savelij 429
                EX DE,HL
430
                POP HL
631 savelij 431
                JP C,FAT_NOT_FOUND
623 savelij 432
                PUSH HL
678 savelij 433
                RST8D _COM_FAT,_FIND_NAME
623 savelij 434
                JP C,SINTAX_ERROR
435
                POP DE
436
                LD B,0X0C
437
MOUNT02         LD A,(DE)
438
                CP "!"
439
                JR C,MOUNT01
440
                INC DE
441
                DJNZ MOUNT02
442
MOUNT01         LD A,(DE)
443
                CP 0X0D
444
                JP Z,SINTAX_ERROR
445
                CP " "
446
                JP NZ,SINTAX_ERROR
447
                INC DE
448
                LD A,(DE)
449
                CP "A"
450
                JP C,SINTAX_ERROR
451
                AND 0XDF
452
                CP "E"
453
                JP NC,SINTAX_ERROR
454
                SUB "A"
455
                LD C,A
456
                INC DE
457
                LD A,(DE)
458
                CP ":"
459
                JP NZ,SINTAX_ERROR
460
                LD A,C
678 savelij 461
                RST8D _MOUNTER,_OPEN_MOUNT
623 savelij 462
                RET
463
 
689 savelij 464
;[ŠŽŒ€„€ UMOUNT]
623 savelij 465
UMOUNT          LD A,(DE)
466
                INC DE
467
                AND 0XDF
468
                LD B,A
469
                LD A,(DE)
470
                INC DE
471
                CP ":"
472
                JP NZ,SINTAX_ERROR
473
                LD A,B
474
                CP "A"
475
                JP C,SINTAX_ERROR
476
                CP "E"
477
                JP NC,SINTAX_ERROR
478
                SUB "A"
678 savelij 479
                RST8D _MOUNTER,_CLOSEMOUNT
623 savelij 480
                RET
481
 
689 savelij 482
;[ŠŽŒ€„€ Ž—ˆ‘’Šˆ CMOS]
678 savelij 483
CLRCMOS         RST8D _CMOS_RW,_CLEAR_CMOS
623 savelij 484
                RET
485
 
689 savelij 486
;[ŠŽŒ€„› ‚›‚Ž„€ € Š€ ‘ˆ‘Š€ €‘˜ˆ…›• ŠŽŒ€„]
623 savelij 487
HELP            CALL CLEAR_SCREEN
488
                CALL OPEN_CHAN_2
489
                LD HL,EXTEND_COM
490
HELP4           LD C,3
491
HELP2           LD A,(HL)
492
                AND A
493
                RET Z
494
                INC HL
495
                LD B,A
496
                PUSH BC
497
                LD A,"."
498
                RST 0X10
499
HELP1           LD A,(HL)
500
                INC HL
501
                RST 0X10
502
                DJNZ HELP1
503
                INC HL
504
                INC HL
505
                POP BC
506
                LD A,9
507
                SUB B
508
                LD B,A
509
HELP3           LD A," "
510
                RST 0X10
511
                DJNZ HELP3
512
                DEC C
513
                JR NZ,HELP2
514
                LD A,0X0D
515
                RST 0X10
516
                JR HELP4
627 savelij 517
 
761 savelij 518
        IF EMU
678 savelij 519
READ_BYTE_HL    PUSH BC
627 savelij 520
                PUSH HL
678 savelij 521
                LD A,(NUM_ALT_PAGE)
522
                PUSH AF
736 savelij 523
                LD A,ROM_BAS48|0X80
678 savelij 524
                LD BC,WIN_A0
525
                CALL WR_BYTE_RET
526
                LD L,(HL)
627 savelij 527
                POP AF
678 savelij 528
                CALL WR_BYTE_RET
529
                LD A,L
530
                CP 0X0D
665 savelij 531
                POP HL
532
                POP BC
533
                RET
534
 
689 savelij 535
;[€‹œ’…€’ˆ‚Ž… ŠŽˆŽ‚€ˆ… ‘…Š’Ž€ „‹Ÿ €Œ„ˆ‘Š€]
665 savelij 536
SV_LD_RAMDISK   PUSH HL
537
                CALL CP_TYPEDRIVE
538
                POP HL
539
                JP NZ,WR_NUM_TRACK              ;ˆ … ‘Ž‚€„…ˆˆ €Ž’€ Ž„Ž‹†€…’‘Ÿ ‘ …€‹œŽ‰ „ˆ‘Š…’Ž‰
540
                POP HL                          ;ˆ€—… €Ž’€…Œ ‘ €Œ„ˆ‘ŠŽŒ
541
                POP HL
542
                POP BC
543
                XOR A
544
                OR B
545
                RET Z
546
                DI
547
                PUSH IX                         ;‘Ž•€ˆ‹ˆ „‹Ÿ ‚“’……ƒŽ ˆ‘Ž‹œ‡Ž‚€ˆŸ
548
                LD IX,(TRD_5CCE)                ;—’…ˆ… ˆ‹ˆ ‡€ˆ‘œ? 00-—’…ˆ…, FF-‡€ˆ‘œ, ‘Ž•€ˆ‹ˆ „‹Ÿ „€‹œ…‰˜…ƒŽ ˆ‘Ž‹œ‡Ž‚€ˆŸ
549
SVLDRAM1        PUSH BC
550
                PUSH HL
551
                LD DE,(TRD_5CF4)
552
                CALL COM_04
553
                LD A,E
554
                CALL COM_03
555
                INC A
678 savelij 556
                RST30 _OUT_5F
665 savelij 557
                LD A,D
558
                PUSH HL
559
                CALL COM_02
560
                POP HL
689 savelij 561
                RST30 _WR_RD_SECT               ;—’…ˆ…/‡€ˆ‘œ ‘…Š’Ž€
665 savelij 562
                LD A,0X10
563
                LD HL,TRD_5CF4
564
                INC (HL)                        ;“‚…‹ˆ—…ˆ… ŽŒ…€ ‘…Š’Ž€
565
                CP (HL)
566
                JR NZ,SVLDRAM2
567
                LD (HL),0                       ;…‘‹ˆ ‚›•Ž„ ‡€ …„…‹› ’…Š€, ’Ž ‘…Š’Ž =0
568
                INC HL
569
                INC (HL)                        ;ˆ “‚…‹ˆ—ˆ‚€…Œ ŽŒ… ’…Š€
570
SVLDRAM2        POP HL
571
                POP BC
572
                INC H                           ;“‚…‹ˆ—ˆ‹ˆ €„…‘ ŠŽˆŽ‚€ˆŸ € 256 €‰’
573
                DJNZ SVLDRAM1
574
                POP IX                          ;ŽŽ‹œ‡Ž‚€‹ˆ‘œ ˆ ‚Ž‘‘’€Ž‚ˆ‹ˆ
575
                EI
576
                RET
577
 
689 savelij 578
;[—’…ˆ…/‡€ˆ‘œ ‘…Š’Ž€ ˆŒŽ’ˆŽ‚€ŽƒŽ Ž€‡€]
678 savelij 579
WR_RD_SEC_M     PUSH IX
580
                LD (TEMP_SP),SP
581
                LD HL,(DOS_STEK)
582
                LD DE,SAVED_RAM
583
                LD BC,0X10
584
                LDIR
585
                LD SP,HL
586
                LD A,(PORT_3F)                  ;‚‡Ÿ‹ˆ ŽŒ… ’…Š€
587
                ADD A,A                         ;‘’ŽŽ 2
588
                LD D,A
589
                LD A,(WR_FF)
590
                AND 0X10                        ;Ž‚…Š€ Š€Š€Ÿ ‘’ŽŽ€ „ˆ‘Š€
591
                JR NZ,WRRDSECM1
592
                INC D                           ;„‹Ÿ ‘’ŽŽ› 1
593
WRRDSECM1       LD A,(PORT_5F)                  ;‚‡Ÿ‹ˆ ŽŒ… ‘…Š’Ž€
594
                LD E,A                          ;D-’…Š, E-‘…Š’Ž
595
                LD HL,(REG_L)                   ;HL=€„…‘ —’…ˆŸ/‡€ˆ‘ˆ
596
                LD A,(WR_FF)
597
                AND 3
598
                LD C,A                          ;ŽŒ… „ˆ‘ŠŽ‚Ž„€
599
                LD A,IXL
600
                AND A                           ;BIT 7=0-—’…ˆ…
601
                JR Z,WRRDSECM2
602
                LD A,0X80                       ;BIT 7=1-‡€ˆ‘œ
603
WRRDSECM2       OR C
604
                LD IXL,A                        ;A=ŽŒ… „ˆ‘ŠŽ‚Ž„€+ˆ’ —’…ˆŸ/‡€ˆ‘ˆ
605
                LD A,(TEK_ROMPAGE)
606
                AND 0X3E
607
                LD IXH,A
608
                LD BC,WIN_A0
665 savelij 609
                OUT (C),A
678 savelij 610
                LD A,IXL
611
                RST8D _MOUNTER,_RDWR_MOUNT
612
                LD BC,WIN_A0
613
                LD A,IXH
665 savelij 614
                OUT (C),A
678 savelij 615
                LD B,HIGH (WIN_P0)
764 savelij 616
                LD A,RAM_EVODOS
665 savelij 617
                OUT (C),A
678 savelij 618
                LD (REG_L),HL                   ;ŽŽ‚ˆ‹ˆ €„…‘ —’…ˆŸ/‡€ˆ‘ˆ
619
                LD HL,SAVED_RAM
620
                LD DE,(DOS_STEK)
621
                LD BC,0X10
622
                LDIR
623
                LD SP,(TEMP_SP)
624
                POP IX
665 savelij 625
                RET
761 savelij 626
        ENDIF
627
 
628
;[—’…ˆ… CMOS]
629
;€ ‚•Ž„…: H-€„…‘ Ÿ—…‰Šˆ
630
;          L-Ž—ˆ’€Ž… ‡€—…ˆ…
631
READCMOS        PUSH BC
632
                LD BC,CMOSD_SET_ADR
633
                OUT (C),H
634
                LD B,HIGH (CMOSD_RD_WR)
635
                IN L,(C)
636
                POP BC
637
                LD A,L
638
                AND A
639
                RET
640
 
641
;[‡€ˆ‘œ CMOS]
642
;€ ‚•Ž„…: H-€„…‘ Ÿ—…‰Šˆ
643
;          L-—’Ž ’“„€ ‡€ˆ‘€’œ
644
WRITECMOS       RST8D _CMOS_RW,_WRITE_CMOS
645
                RET