Subversion Repositories pentevo

Rev

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

Rev Author Line No. Line
627 savelij 1
 
1120 savelij 2
; LAST UPDATE: 18.10.2023 savelij
627 savelij 3
 
4
;   
5
 
6
ED_DRV  DW      ED_RES
7
        DW      ED_SEEK
8
        DW      ED_FRM
9
        DW      ED_REC
10
        DW      ED_RD
11
        DW      ED_NOP
12
        DW      ED_WR
13
 
14
;-------------------------
15
;   
16
ED_RES:
17
ED_REC:
18
ED_NOP
19
;       CALL    TST_RT
20
        XOR     A
21
        RET
22
 
698 dimkam 23
;-------------------------
627 savelij 24
ED_SEEK: LD     A,(RQCYL)
25
         LD     (ED_CYL),A
26
         XOR    A
27
         RET
28
 
29
;-------------------------
30
;  
691 DimkaM 31
ED_ADR  BIT ED_INI,(IX-_TST_IS1)
627 savelij 32
                CALL NZ,ED_INIT
736 savelij 33
                ld              a,~RAM_RAMDISK
691 DimkaM 34
        RST     18H
35
        EX      AF,AF'
36
                ld              hl,(ED_CYL)
37
                ld              h,0xc2
38
                LD      de,(RQSECT)      
39
                inc e
40
                ld d,0
41
                ld b,126
42
ED_ADR_LOOP:
43
                ld a,(hl)
44
                cp e
45
                jr z,ED_ADR_END
46
                inc h
47
                ld a,(hl)
48
                add a,d
49
                ld d,a
50
                inc h
51
                djnz ED_ADR_LOOP
52
        EX      AF,AF'
53
                rst 0x18
54
                JR ED_ERRA1
55
ED_ADR_END:    
56
                ld e,0
57
                srl d
58
                rr e
59
                ld h,0xc0
60
                ld a,(hl)
61
                add a,d
62
                ld d,a
63
                inc h
736 savelij 64
                ld a,RAM_DATARAMD
698 dimkam 65
                add a,(hl)
66
                set 7,d
67
                bit 6,d
68
                jr z,ED_ADR_NINC
69
                res 6,d
70
                inc a
691 DimkaM 71
ED_ADR_NINC:
72
        EX      AF,AF'
73
                rst 0x18
627 savelij 74
        RET
75
 
76
ED_INIT:RES     ED_INI,(IX-_TST_IS1)
77
        XOR     A
78
        CALL    ED_PG
79
        RST     18H
80
        EX      AF,AF'
81
        LD      A,0E5H
82
        JP      ED_CLR
83
 
84
;-------------------------
698 dimkam 85
; 
86
ED_LDIR:
87
                ld              a,0x06
88
                in              a,(0xbe)
89
        EX      AF,AF'
90
                push    bc
91
                ld              bc,WIN_P2
92
                out     (c),a
93
                pop     bc
94
                ldir
95
        EX      AF,AF'
96
                ld              bc,WIN_P2
97
                out     (c),a
98
                ret
99
;-------------------------
100
; 
627 savelij 101
ED_RD:  CALL    ED_ADR          ; COPY FROM HL ...
698 dimkam 102
        EX      DE,HL
103
        LD      BC,256
627 savelij 104
        LD      DE,(DCBUF)      ; ... TO DE 128 BYTE
698 dimkam 105
                call    ED_LDIR
627 savelij 106
        EI
107
        XOR     A
108
        RET
109
 
110
ED_ERRA1: POP   AF
111
ED_ERRA:LD      A,_ADRERR
112
        RET
113
 
114
;------------------------
115
; 
116
ED_WR:  CALL    ED_ADR          ; COPY TO HL ...
698 dimkam 117
        LD      BC,256
118
        LD      HL,(DCBUF)    
119
                call    ED_LDIR
627 savelij 120
        EI
121
        XOR     A
122
        RET
123
 
124
;----------------------------
125
; FORMAT
126
ED_FRM: LD      A,(RQCYL)
127
        DEC     A
698 dimkam 128
                JP              M,ED_ERRA
627 savelij 129
        CALL    ED_PG
130
        RST     18H
131
        EX      AF,AF'
132
        LD      A,(RQBLN)
133
ED_CLR  LD      HL,0C000H
134
        LD      DE,0C001H
135
        LD      BC,03FFFH
136
        LD      (HL),A
137
        LDIR
138
        EX      AF,AF'
139
        RST     18H
140
        EI
141
        XOR     A
142
        RET