Subversion Repositories pentevo

Rev

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

Rev Author Line No. Line
507 savelij 1
 
1186 savelij 2
; LAST UPDATE: 06.02.2025 savelij
507 savelij 3
 
1186 savelij 4
; 室 ࠬ 騥:
5
; HL- 㧪  
6
; BCDE-32-   ᥪ
7
; A-⢮  (=512 )
8
; ⮫쪮  筮 /⥭
507 savelij 9
 
1186 savelij 10
; 訡 뤠  室:
11
; A=0-樠 諠 ᯥ譮
12
; A=1-     ⢥⨫
507 savelij 13
 
1186 savelij 14
; 窠 室  ࠡ  SD
507 savelij 15
COMSDZ          EX AF,AF'
16
                LD A,IYL
17
                AND A
18
                LD A,(NEXTBYTERST8)
19
                JR Z,COMSDZ1
20
                EX (SP),HL
21
                LD A,(HL)
22
                INC HL
23
                EX (SP),HL
24
COMSDZ1         ADD A,A
25
                PUSH HL
26
                LD HL,RET4SDZ
27
                EX (SP),HL
28
                PUSH HL
29
                LD HL,TABLSDZ
30
                ADD A,L
31
                LD L,A
32
                ADC A,H
33
                SUB L
34
                LD H,A
1186 savelij 35
        PEC_OFF M_SHADOW_BF
507 savelij 36
                LD A,(HL)
37
                INC HL
38
                LD H,(HL)
39
                LD L,A
40
                EX AF,AF'
41
                EX (SP),HL
42
                RET
43
 
44
RET4SDZ         PUSH AF
45
                LD A,IYL
46
                AND A
47
                JR NZ,RET4SD1
553 savelij 48
                LD (RREG_L),HL
507 savelij 49
                EX (SP),HL
553 savelij 50
                LD (RREG_F),HL
507 savelij 51
                EX (SP),HL
1186 savelij 52
RET4SD1
53
        PEC_ON M_SHADOW_BF
507 savelij 54
                POP AF
55
                RET
56
 
1186 savelij 57
TABLSDZ         DW SD_INIT                      ; 0 ࠬ஢  ॡ,  室 'A'
58
                                                ; ᬮ   2 祭
59
                DW SD_CMP                       ; 1 ஢ઠ  SD 
60
                DW RDMULTI                      ; 2 ⥭ ᥪ஢, -  'A'
61
                DW WRMULTI                      ; 3  ᥪ஢, -  'A'
507 savelij 62
 
63
SD_INIT         CALL CS_HIGH
64
                LD BC,P_DATA
1186 savelij 65
                LD DE,0x10FF
507 savelij 66
                OUT (C),E
67
                DEC D
68
                JR NZ,$-3
69
                XOR A
70
                EX AF,AF'
71
ZAW001          LD HL,CMD00
72
                CALL OUTCOM
73
                CALL IN_OOUT
74
                EX AF,AF'
75
                DEC A
76
                JR Z,ZAW003
77
                EX AF,AF'
78
                DEC A
79
                JR NZ,ZAW001
80
                LD HL,CMD08
81
                CALL OUTCOM
82
                CALL IN_OOUT
83
                IN H,(C)
84
                NOP
85
                IN H,(C)
86
                NOP
87
                IN H,(C)
88
                NOP
89
                IN H,(C)
90
                LD HL,0
91
                BIT 2,A
92
                JR NZ,ZAW006
1186 savelij 93
                LD H,0x40
507 savelij 94
ZAW006          LD A,CMD_55
95
                CALL OUT_COM
96
                CALL IN_OOUT
890 DimkaM 97
                in (c) ;in f,(c)
98
                in (c) ;in f,(c)
507 savelij 99
                LD A,ACMD_41
100
                OUT (C),A
101
                NOP
102
                OUT (C),H
103
                NOP
104
                OUT (C),L
105
                NOP
106
                OUT (C),L
107
                NOP
108
                OUT (C),L
1186 savelij 109
                LD A,0xFF
507 savelij 110
                OUT (C),A
111
                CALL IN_OOUT
112
                AND A
113
                JR NZ,ZAW006
114
ZAW004          LD A,CMD_59
115
                CALL OUT_COM
116
                CALL IN_OOUT
117
                AND A
118
                JR NZ,ZAW004
119
ZAW005          LD HL,CMD16
120
                CALL OUTCOM
121
                CALL IN_OOUT
122
                AND A
123
                JR NZ,ZAW005
124
CS_HIGH         PUSH AF
125
                LD A,3
126
                OUT (P_CONF),A
127
                XOR A
128
                OUT (P_DATA),A
129
                POP AF
130
                RET
131
 
132
ZAW003          CALL SD__OFF
133
                INC A
134
                RET
135
 
136
SD__OFF         XOR A
137
                OUT (P_CONF),A
138
                OUT (P_DATA),A
139
                RET
140
 
141
CS__LOW         PUSH AF
142
                LD A,1
143
                OUT (P_CONF),A
144
                POP AF
145
                RET
146
 
147
OUTCOM          CALL CS__LOW
148
                PUSH BC
1186 savelij 149
                LD BC,0x0600+P_DATA
507 savelij 150
                OTIR
151
                POP BC
152
                RET
153
 
154
OUT_COM         PUSH BC
155
                CALL CS__LOW
156
                LD BC,P_DATA
890 DimkaM 157
                in (c) ;in f,(c)
158
                in (c) ;in f,(c)
507 savelij 159
                OUT (C),A
160
                XOR A
161
                OUT (C),A
162
                NOP
163
                OUT (C),A
164
                NOP
165
                OUT (C),A
166
                NOP
167
                OUT (C),A
168
                DEC A
169
                OUT (C),A
170
                POP BC
171
                RET
172
 
585 savelij 173
SD_CMP          LD A,CMD_58
174
                LD BC,P_DATA
175
                CALL OUT_COM
176
                CALL IN_OOUT
177
                IN H,(C)
178
                NOP
179
                IN H,(C)
180
                NOP
181
                IN H,(C)
182
                NOP
183
                IN H,(C)
184
                RET
185
 
507 savelij 186
SECM200         PUSH HL
187
                PUSH DE
188
                PUSH BC
189
                PUSH AF
190
                PUSH BC
191
                LD A,CMD_58
192
                LD BC,P_DATA
193
                CALL OUT_COM
194
                CALL IN_OOUT
195
                IN A,(C)
196
                NOP
197
                IN H,(C)
198
                NOP
199
                IN H,(C)
200
                NOP
201
                IN H,(C)
585 savelij 202
                INC A
203
                JP Z,SD_CARD_LOST
204
                DEC A
507 savelij 205
                BIT 6,A
206
                POP HL
207
                JR NZ,SECN200
208
                EX DE,HL
209
                ADD HL,HL
210
                EX DE,HL
211
                ADC HL,HL
212
                LD H,L
213
                LD L,D
214
                LD D,E
215
                LD E,0
216
SECN200         POP AF
890 DimkaM 217
                in (c) ;in f,(c)
218
                in (c) ;in f,(c)
507 savelij 219
                LD BC,P_DATA
220
                OUT (C),A
221
                NOP
222
                OUT (C),H
223
                NOP
224
                OUT (C),L
225
                NOP
226
                OUT (C),D
227
                NOP
228
                OUT (C),E
1186 savelij 229
                LD A,0xFF
507 savelij 230
                OUT (C),A
231
                POP BC
232
                POP DE
233
                POP HL
234
                RET
235
 
236
IN_OOUT         PUSH DE
1186 savelij 237
                LD DE,0x30FF
507 savelij 238
IN_WAIT         IN A,(P_DATA)
239
                CP E
240
                JR NZ,IN_EXIT
241
IN_NEXT         DEC D
242
                JR NZ,IN_WAIT
243
IN_EXIT         POP DE
244
                RET
245
 
1186 savelij 246
CMD00           DB 0x40,0x00,0x00,0x00,0x00,0x95                ;GO_IDLE_STATE
247
CMD08           DB 0x48,0x00,0x00,0x01,0xAA,0x87                ;SEND_IF_COND
248
CMD16           DB 0x50,0x00,0x00,0x02,0x00,0xFF                ;SET_BLOCKEN
507 savelij 249
 
250
RD_SECT         PUSH BC
573 savelij 251
                LD A,IYL
252
                BIT 1,A
588 savelij 253
                JR NZ,RD_SECT3                  ;  
573 savelij 254
                AND A
255
                JR NZ,RD_SECT2
680 savelij 256
RD_SECT3       
1186 savelij 257
        READ_7FFD
573 savelij 258
                LD BC,(B0_CPU2)
259
                JR Z,RD_SECT1
260
                LD BC,(B1_CPU2)
1186 savelij 261
RD_SECT1
262
        PEC_ON M_SHADOW_BF
573 savelij 263
                LD A,B
1186 savelij 264
                OR 0x37
573 savelij 265
                LD B,A
266
                LD A,C
267
                LD C,LOW (WIN_A0)
268
                OUT (C),A
1186 savelij 269
        PEC_OFF M_SHADOW_BF
573 savelij 270
RD_SECT2        LD BC,P_DATA
507 savelij 271
                INIR
272
                NOP
273
                INIR
274
                NOP
275
                IN A,(C)
276
                NOP
277
                IN A,(C)
1186 savelij 278
        PEC_ON M_SHADOW_BF
279
                LD BC,WIN_P2
573 savelij 280
                XOR A
281
                OUT (C),A
1186 savelij 282
        PEC_OFF M_SHADOW_BF
507 savelij 283
                POP BC
284
                RET
285
 
573 savelij 286
WR_SECT         PUSH BC
287
                LD BC,P_DATA
288
                OUT (C),A
289
                OTIR
290
                NOP
291
                OTIR
1186 savelij 292
                LD A,0xFF
573 savelij 293
                OUT (C),A
294
                NOP
295
                OUT (C),A
296
                POP BC
297
                RET
298
 
507 savelij 299
RDMULTI         EX AF,AF'
300
                LD A,CMD_18
301
                CALL SECM200
302
                EX AF,AF'
303
RDMULT1         EX AF,AF'
304
                CALL IN_OOUT
1186 savelij 305
                CP 0xFE
507 savelij 306
                JR NZ,$-5
307
                CALL RD_SECT
308
                EX AF,AF'
309
                DEC A
310
                JR NZ,RDMULT1
311
                LD A,CMD_12
312
                CALL OUT_COM
313
                CALL IN_OOUT
314
                INC A
315
                JR NZ,$-4
316
                JP CS_HIGH
317
 
573 savelij 318
WRMULTI         EX AF,AF'
319
                LD A,CMD_25
507 savelij 320
                CALL SECM200
321
                CALL IN_OOUT
573 savelij 322
                INC A
323
                JR NZ,$-4
324
                EX AF,AF'
325
WRMULT1         EX AF,AF'
1186 savelij 326
                LD A,0xFC
573 savelij 327
                CALL WR_SECT
507 savelij 328
                CALL IN_OOUT
329
                INC A
330
                JR NZ,$-4
573 savelij 331
                EX AF,AF'
332
                DEC A
333
                JR NZ,WRMULT1
334
                LD C,P_DATA
1186 savelij 335
                LD A,0xFD
573 savelij 336
                OUT (C),A
337
                CALL IN_OOUT
338
                INC A
339
                JR NZ,$-4
507 savelij 340
                JP CS_HIGH