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 |